3
$banana=0;
$view = mysql_query('SELECT ......') or die ('Encountered an error.') ;
while($rows3=mysql_fetch_array($view))
{
    $total_price2=$rows3['qty']*$rows3['number'];
    $banana = $banana + 1;

    if ($total_price2!=0)
    {   
        if ($banana %2 ==0)
        {   
            echo "<tr class=\"alt\">";
        }   
        else
        {
            echo "<tr>";
        }   
        echo "<td>".$rows3['member']."</td>";
        echo "<td>".$rows3['payment']."</td>";
        echo "<td>$".number_format($total_price2,2)."</td>";                
    }

    echo "</tr>";
}   

問題:

  • 「バナナ」は、係数 (%) を使用してバナナが奇数かどうかをチェックすることにより、表の行 (class="alt") の色を交互に変更します。
  • <tr>動作していません。ブラウザが開始タグを自動的に閉じていることがわかります。

例えば:

<tr><td>person</td><td>data</td><td>$10.00</td></tr>

<tr class="alt"></tr>(このように繰り返します)

アップデート

反復するbananaと常に ODD NUMBERS: 1 、 3 、 5 などが返されることがわかりました。

MySQL が正しく実行されていません

SELECT table1.member, table1.paid, table1.payment,table2.qty,table3.number FROM table1,table2,table3 WHERE table1.member = table2.member AND table1.payment="fruit"

それは私に次のような間違ったデータを与えています:

  1. 人1 $10.00
  2. 人1 $0.00
  3. 人2 $10.00
  4. 人2 $0.00

4

3 に答える 3

3

他のすべてが失敗した場合は、CSS を使用できます。

tr {background-color: blue;}
tr:nth-of-type(2n) {background-color: red;}
于 2012-04-04T16:31:27.047 に答える
3

最初にデバッグのためにこれを試してください:

echo "<tr class=\"alt\">&nbsp;";

私の推測では、 <tr> にデータが含まれておらず、ブラウザーによって高さ 0 px に押しつぶされていると思われます。

編集: <tr> にクラスを指定すると、特定のブラウザー DOM 解析に基づいて <td> にフィルターダウンされるかどうかは完全にはわかりません。ゼブラ行を実行するときはいつでも、クラスを <td> に割り当てます。ただし、私はどの基準から見てもデザイナーではありません。:)

私をユーモアにして、これを試してください:

$banana=0;
$view = mysql_query('SELECT ......') or die ('Encountered an error.') ;
while($rows3=mysql_fetch_array($view))
{
    $total_price2=$rows3['qty']*$rows3['number'];
    $banana++;
    if ($banana % 2 == 0) {   
        $td_class = "alt";
    } else {
        $td_class = "";
    }
    echo "<tr>";
    if ($total_price2!=0) {     
        echo "<td class='{$td_class}'>".$rows3['member']."</td>";
        echo "<td class='{$td_class}'>".$rows3['payment']."</td>";
        echo "<td class='{$td_class}'>$".number_format($total_price2,2)."</td>";                            
    }
    echo "</tr>";
}
于 2012-04-04T16:28:23.427 に答える
1

それはうまくいきません。の場合にのみ、テーブルの行を開きます$total_price2!=0</tr>そのIFブロック内にのみ終了タグを出力する必要があるようです。

代わりにこれを試してください:

<?php
$banana=0;
$view = mysql_query('SELECT ......') or die ('Encountered an error.') ;
while($rows3=mysql_fetch_array($view))
{
    $total_price2=$rows3['qty']*$rows3['number'];

    if ( !$total_price2)
        continue;

    $banana = $banana + 1;

    if ($banana %2 ==0)
    {   
        echo "<tr class=\"alt\">";
    }   
    else
    {
        echo "<tr>";
    }

    echo "<td>".$rows3['member']."</td>";
    echo "<td>".$rows3['payment']."</td>";
    echo "<td>$".number_format($total_price2,2)."</td>";

    echo "</tr>";
} 
于 2012-04-06T02:58:43.687 に答える