2011-01-28 110 views
1

即時通訊設法從數據庫中獲取數據並將其列在<li>列表中。即時通訊試圖找出每個第三個列表項並給它一個不同的李類?這是我的代碼確定php while while循環中的每個第三項?

<?php 
while ($row = mysql_fetch_array($getupdates)){ 
?> 
<li id="update" class="group"> 
    blah blah blah 
</li> 
<?php } ?> 

所以基本上每隔3個項目,我想給它一個不同的立類

<li id="update" class="group third"> 
+3

添加支持作爲一般的經驗法則,從來沒有使用shorttags(<或<=而不是<?PHP的。他們棄用,一些服務器 – phihag 2011-01-28 23:01:27

+0

OOOOH,FizzBu​​zz! – webbiedave 2011-01-28 23:42:27

回答

6

有在while循環的計數器。我們稱之爲$i。在你的循環,補充一點:

$i++; 
if ($i % 3 == 0) { 
    //do something you'd do for the third item 
} 
else { //default behavior } 
0
<?php 
$i = 0; 
while (($row = mysql_fetch_array($getupdates)) !== false){ 
    echo '<li id="update" class="group'; 
    if ($i++ % 3 == 2) echo ' third'; 
    echo '">blah blah blah</li>'; 
} 
1

使用計數器,然後只需檢查計數器的模3爲0或不以確定它是否是一個第三排。

<?php 
$rowCount = 0; 
while ($row = mysql_fetch_array($getupdates)) 
{ 
    $useDiffClass = (($rowCount++ % 3) == 0);  
    ?> 
    <li id="update" class="group <?=($useDiffClass ? "third" : "");?>"> 
     blah blah blah 
    <li> 
    <? 
} 
?> 
0

Modulus operator是要走的路。

但是,您也可以使用CSS3屬性來實現相同的效果,而不使用PHP。

2

使用CSS3僞類屬性選擇器,您可以更輕鬆地做到這一點。事情是這樣的:?

li:nth-child(3) { 
    font-weight: bold; 
} 

如果你擔心IE支持CSS3的屬性,你可以很容易地用填充工具像http://selectivizr.com/