簡體   English   中英

While語句中的PHP For循環計數

[英]PHP For Loop Count in While Statement

我試圖找出最好的解決方案,該如何在div類上計數的同時用php輸出我的html。

這是我打印新聞的功能:

function post_news()
{
    $post_news = $this->mysql->Query("SELECT * FROM news ORDER BY id DESC LIMIT 4");
    while ($news_row = mysqli_fetch_array($post_news))
    {
        echo "<div class='column1'>
            <div class='box'>
            <h3>".$news_row['title']."</h3>
            <p>".$news_row['content']."</p>
            <a href='index.php?p=news&id=".$news_row['id']."' class='button button-small'>Read More</a> </div>
            </div>";
    }
}

我正在嘗試的是顯示<div class='column1'>我需要它向上計數到class='column4' 當我嘗試For循環或第二個While循環時,有時可以讓它計數,但是它總是在新行中讓這些塊像正常一樣並排顯示。

那么,在每個塊之后不進行換行的情況下,加進div類的最佳方法是什么?

我假設當您說1到4時,您希望它在4之后從1重新開始。只要增加一個計數器並在計數器達到4時將其重置即可:

$num = 0;
while ($news_row = mysqli_fetch_array($post_news))
    {
        $num++;
        echo "<div class='column{$num}'>
            <div class='box'>
            <h3>".$news_row['title']."</h3>
            <p>".$news_row['content']."</p>
            <a href='index.php?p=news&id=".$news_row['id']."' class='button button-small'>Read More</a> </div>
            </div>";
        if($num == 4) { $num = 0; }
    }

或實際上,您在查詢中使用LIMIT 4 ,因此您實際上並不需要if語句將其重置為0 ,因為循環僅迭代4次。

一個純HTML解決方法是使用如下代碼:

<div class='column1'>
...
</div><div class='column2'>
..
</div>

但是因為您在回聲,所以行不通。 您可以做的另一件事是為這些列指定一個inline-block css屬性。 如果您使用的是引導程序,則可以只使用col-xs-3這樣您就可以擁有4個偶數列。

如果沒有,那么您將不得不將每個類指定為width:25%

總結一下,在css中:

.col{
    width:25%;/*probably going to have make responsive for screen width*/
    display:inline-block;/*or float:left, whichever*/
}

並在php / html中:

...
echo "<div class='column1 col'>
            <div class='box'>
            <h3>".$news_row['title']."</h3>
            <p>".$news_row['content']."</p>
            <a href='index.php?p=news&id=".$news_row['id']."' class='button button-small'>Read More</a> </div>
            </div>";
...

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM