2011-08-13 11 views
0

基本的には、各行の色がわずかに変わるテーブルを作成しようとしています。php配列内の指定されたインスタンスの番号を取得

各偶数行にはclass="even"、奇数行にはすべてclass="odd"という名前を付けてこれを行います。

私のループでは、配列のインスタンスが奇数か偶数かを調べる必要があります。

私はほとんどが書き込みすることによってこれを行うを行うことができます。しかしcount($row)を書く

if (count($row)%2 == 0) //while $row is an array from a mysql query 
    { 
    echo "<tr class='even'>"; 

if (count($row)%2 == 1) 
    { 
    echo "<tr class='odd'>"; 
    } 

は私に配列全体のカウントではなく、それは配列全体に落ちる場所を示すインスタンスの数を示します。どのように私は配列内のインスタンスの番号を得ることができるかについての任意のアイデア?

$i = 0; 
while ($i < count($row)) { 
    if (($i % 2) == 0) { 
    echo "<tr class='even'>"; 
    } else { 
    echo "<tr class='odd'>"; 
    } 
    $i++; 
} 

答えて

3

このためにPHPを使用しないでください:

おかげ

+0

...まだPHPを使用して生成する必要があります。 Jeffのコンテンツはデータベースクエリを記述しているので、おそらく静的ではありません。 –

+0

@ Jared:彼のコンテンツはダイナミックなものかもしれませんが、それはスタイルのためにPHPを使うべきではありません。 – JRL

+0

この回答はPHPの問題ではなく、CSSの問題を解決するものではありません。また、CSSを使用していないとは誰も言いませんでした。 –

1

はこのような何かを試してみてください。 CSSを使用します。

tr:nth-child(even) {background: #CCC} 
tr:nth-child(odd) {background: #FFF} 
+1

いけない '$ i'をインクリメントすることを忘れ。 – Josh

+0

おっと、いいキャッチ。 –

+0

@ Jared Ng:あなたの編集は、あなたが期待しているものを作りません。あなたはwhile体の終わりでインクリメントする必要があります。 –

1

あなたはカウンターを使用することができます。

$i = 0 
while($row=mysql_fetch_array($yourquery)) { 
    if ($i % 2 == 0) { 
     echo "<tr class='even'>"; 
    } else { 
     echo "<tr class='odd'>"; 
    } 
    $i++; 
}  
関連する問題