2011-07-17 67 views
2

如何在我的php循環中交替顏色行?PHP循環中的交替顏色行

$num = mysql_num_rows($qPhysician); 

$i=0; 

while($i < $num) 

{ 

    echo "<tr>"; 
    echo "<td>" . mysql_result($qPhysician,$i,"lastName") . "</td>"; 
    echo "<td>" . mysql_result($qPhysician,$i,"firstName") . "</td>"; 
    echo "</tr>"; 

    $i++; 

} 

我不得不省略「<」和「>」兩個「TR」和「TD」,因爲它並沒有在這個問題上允許的。 :)

謝謝!

+0

你有問題的格式爲你解決了兩次 - 慢下來,弄明白。突出顯示代碼部分,然後單擊編輯器中的「{}」符號。如果您將標記爲代碼,則可以在您的示例中使用<<>。 – Erik

+0

您是在談論表格中的替代顏色還是僅從備用索引中選擇數據 - 請澄清? – treecoder

+0

對此感到抱歉。是的,它是交替顏色行:) –

回答

8

你是什麼意思?你是說你想在一個交替行的表中回顯它嗎?

$num = mysql_num_rows($qPhysician); 
$i=0; 
echo "<table>" 
while($i < $num) 

{ 
if ($i % 2 == 0){ 
echo "<tr class='style1'>"; 
} 
else{ 
echo "<tr class='style2'>"; 
} 
echo "<td>" . mysql_result($qPhysician,$i,"lastName") . "</td>"; 

echo "<td>" . mysql_result($qPhysician,$i,"firstName") . "</td>"; 

echo "</tr>"; 

$i++; 

} 
echo "</table>"; 
+0

這工作得很好!謝謝! –

0

你裏面,而你可以使用:

if ($i % 2 == 0) 
    echo "even"; 
else 
    echo "odd"; 
+0

謝謝!凱文王能夠闡述更多。 –

+0

不客氣。但我認爲這不是關於給魚,而是釣魚竿。 ;) – armandomiani

2

與例如here繼續:

$query = mysql_query("SELECT lastName, firstName FROM physicians"); 

$i = 0; 
while($arr = mysql_fetch_assoc($query)) 
{ 
    // use modulus (%). It returns the remainder after division. 
    // in this case, $i % 2 will be 1 when $i is odd, 0 when even. 
    // this is the ternary operator. 
    // it means (if this)? do this: otherwise this   
    // (Remember 1 is true and 0 is false so odd rows will be the odd 
    // class, even rows the even class) 
    echo ($i % 2)?'<tr class="odd">':'<tr class="even">'; 
    // Now, use array indexing. 
    echo "<td>" . $arr[ "lastName" ] . "</td>"; 
    echo "<td>" . $arr[ "firstName" ] . "</td>"; 
    echo "</tr>"; 
    $i++; 
} 
+0

這個工作,但它只顯示2行。目前,我的數據庫中有3行。 –

+0

當你從醫生那裏選擇*時會發生什麼? – cwallenpoole

+0

因爲mysql_fetch函數幾乎不得不工作,或者你有* BIG *問題。 – cwallenpoole

0
<?php 
$host="localhost"; // Host name 
$username="root"; // Mysql username 
$password=""; // Mysql password 
$dbname=""; // Database name 
$tblname=""; // Table name 
// Connect to server and select databse 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$dbname")or die("cannot select DB"); 
$sql="SELECT * FROM $tblname"; 
$result=mysql_query($sql); 
// Define $color=1 
$color="1"; 
echo '<h3 align = "center"> Details <hr /></h3>'; 
echo '<table width="400" border="1" align="center" cellpadding="2" cellspacing="0">'; 
while($rows=mysql_fetch_row($result)){ 
// If $color==1 table row color = #FFCCFF 
if($color == 1){ 
echo "<tr bgcolor='#FFCCFF'><td>$rows[0]</td><td>$rows[1]</td><td>$rows[2]</td><td>$rows[3]</td></tr>"; 
// Set $color==2, for switching to other color 
$color="2"; 
} 
// When $color not equal 1, table row color = #FFC600 
else { 
echo "<tr bgcolor='#FFC600'><td>$rows[0]</td><td>$rows[1]</td><td>$rows[2]</td><td>$rows[3]</td></tr>"; 
// Set $color back to 1 
$color="1"; 
} 
} 
echo '</table>'; 
mysql_close(); 
?> 
0

這裏是如果你正在尋找交替的一組顏色的簡單的一招。

首先在文檔的頭部添加一些css。

<style> 

    div.red { 
     background-color: #E87876; 
    } 

    div.burnt { 
     background-color: #E89576; 
    } 

    div.orange { 
     background-color: #E8B176; 
    } 

    div.mustard { 
     background-color: #E8CE76; 
    } 

    div.yellow { 
     background-color: #E6E876; 
    } 

    div.green { 
     background-color: #CAE876; 
    } 

    </style> 

然後將顏色添加到您的循環中。

$colors = array('red','burnt','orange','mustard','yellow','green'); 
    $rowCount=0; 

     while($row = mysql_fetch_array($sql)) 
      { 
      $something=$row['data']; 
      if($rowCount==6) // number of colors in array 
      { 
      $rowCount=0; // reset to first color 
      } 

     echo "<div class=\"".$colors[$rowCount]."\">".$something."</div>";  

     $rowCount++; 

      }