2011-03-24 52 views
0

以上是構成數據庫,其中所用的LIMIT 0,10。($結果)如何添加類=「最後」到最後一行在環路

  while ($row = mysql_fetch_object($result)){ 
        echo '<li>'.$row->title.'</li>'; 
      } 

現在我想添加class =「last」到10行。這是我的方式。但它不能工作。如何改正或使用另一種方式來獲得?

while ($row = mysql_fetch_object($result)){ 
     $num=0; 
     if($num==9){ 
        echo '<li class="last">'.$row->title'</li>'; 
      }else{ echo '<li>'.$row->title.'</li>';} 
     $num++; 
    } 

回答

4

定義$num=0;while循環外。

您正在定義$num=0;裏面while所以++$num;根本沒有意義。它將設置爲0

那麼,邏輯是這樣的。

$j = 0; /* $j is outside the loop, so it does not repeat. */  

for($i=0; $i<=10; $i++) 
{ 
    $k = 0;  
    /*  
    Its because the loop repeats, 
    And $k is set to 0 at the above step.   
    */  
    echo "j: ".($j++)." k:".($k++)."<br/>"; 
} 
+0

得到它,爲什麼我應該把$ NUM = 0 while循環之外。謝謝 – enjoylife 2011-03-24 05:35:02

1

爲了知道你是否對你的結果集的最後一行,你要知道有多少行存在這樣的結果集(如,當然,你可以有不到10行;兩種可能的解決方案:

  • 使用select count()查詢,用相同的where條款爲您select查詢,讓你的數據,以找出是否您有少於10行,或超過10行。
  • 或者先將整個結果集提取到一個數組,然後才顯示它 - 使用count()來知道該數組中有多少行。


另一種可能是使用mysql_num_rows()功能,讓行的總數 - 這將讓你知道,如果你在最後一個(引用)

檢索 結果集的行數。對於像SELECTSHOW 這樣的語句,此命令僅適用於返回實際結果集的 。


在任何情況下,你接下來要保留您所顯示的行數的軌跡 - 要知道,如果你是最後一個。

注意:這意味着使用一些計數器變量,如你所做;除非你想將它初始化爲0以外的循環
否則,每當你循環時重置爲0,你永遠不會知道你是哪一行!

+0

很好的答案。謝謝。 – enjoylife 2011-03-24 05:44:32

1
using another way 

使用CSS

li:last-child{ 
/*add properties of that class(last) here*/ 
} 
相關問題