2011-09-23 34 views
-1

我有下面的代碼寫在下面。有了這段代碼,我想從MySQL數據庫中獲取數據,並在表格行中打印(回顯)結果,每行都有不同的顏色。有了這個代碼數據成功從數據庫中獲取,但我的條件變化顏色的行不起作用。請檢查我的代碼,並讓我知道我錯在哪裏。PHP IF語句改變錶行的顏色​​?

<table width="500" align="center" style="border:1px solid;">  
    <?php 
     $query = "SELECT * FROM main_cat"; 
     $result = mysql_query($query); 
     $count = mysql_num_rows($result); 
     while($end = mysql_fetch_array($result)){ 
      echo "<tr>"; 
       if($count % 2 == 0){ 
        echo '<td bgcolor="#CCCCCC">'.$end['page_name'].'</td>'; 
       }else{ 
        echo '<td bgcolor="#99CC66">'.$end['page_name'].'</td>'; 
       } 
      echo "</tr>"; 
      } 
    ?> 
</table> 
+0

Downvoter,請告訴他們需要什麼來糾正,以避免這樣的downvote的OP。 –

+0

我問那個低估你問題的人解釋他們的downvote。 –

回答

3

你沒有初始化$count爲0,你不增加$count任何地方。

2

這應該工作:

<table width="500" align="center" style="border:1px solid;">  
    <?php 
     $query = "SELECT * FROM main_cat"; 
     $result = mysql_query($query); 
     $i = 0; 
     while($end = mysql_fetch_array($result)){ 
      echo "<tr>"; 
       if($i % 2 == 0){ 
        echo '<td bgcolor="#CCCCCC">'.$end['page_name'].'</td>'; 
       }else{ 
        echo '<td bgcolor="#99CC66">'.$end['page_name'].'</td>'; 
       } 
      echo "</tr>"; 
      $i++; 
      } 
    ?> 
</table> 

更妙的是使用CSS,即奇數和偶數選擇:http://www.w3.org/Style/Examples/007/evenodd

+1

指向CSS的+1。 – GolezTrol

1

你需要把計數while循環,而不是返回總數通過查詢。

不打算爲你寫代碼。

while while循環將計數器設置爲零。

在同時計數器 的迴路校驗條件由1

+0

如果您打算投票回答我的問題,請您留下一些反饋意見 – Bruce

1

如果你喜歡然後增加計數器的值,就可以縮短這個代碼,獲得HTML出來的PHP代碼。這將允許像Notepad ++或NetBeans這樣的編輯高亮顯示HTML代碼。除此之外,你只有一行HTML,所以它會更容易維護。

但是,最聰明的做法是使用css來設置交替行的樣式,或者至少使用一個類來設置各行的樣式。

我在我的代碼中使用了內聯樣式,它很髒。但是bgcolor。真?它甚至不支持HTML 4.1嚴格。這是舊的,它是惡作劇。

<table width="500" align="center" style="border:1px solid;">  
    <?php 
     $query = "SELECT * FROM main_cat"; 
     $result = mysql_query($query); 
     $i = 0; 
     while($end = mysql_fetch_array($result)){ 
      $color = ($i++ % 2 == 0 ? '#CCCCCC' : '#99CC66'); 
      $page = $end['page_name']; 
?> 
    <tr><td style="background-color: <?=$color?>"><?=$page?></td></tr> 
<?php 
     } 
?> 
</table> 

信貸轉到Jeroen。這是他基於這個例子的代碼。

0

我認爲你應該製作一個不同顏色的數組,然後用改變索引改變每一行的顏色。這樣

<table width="500" align="center" style="border:1px solid;">  
<?php 
    $query = "SELECT * FROM main_cat"; 
    $result = mysql_query($query); 
    $clr=0; 
    $colors = array('blue','green','purple','orange','red'); 
    while($end = mysql_fetch_array($result)){ 
     echo '<tr style="font-size:18px;background-color:'.$colors[$clr].'">'; 
       echo '<td bgcolor="#CCCCCC">'.$end['page_name'].'</td>'; 
       echo '<td bgcolor="#99CC66">'.$end['page_name'].'</td>'; 
     echo "</tr>"; 
     $clr++; 
     if($clr==5) 
      $clr=0; 
     } 
?>