[英]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.