0

mysql から値を取得するコードを作成しました。値が 1 の場合は行が赤色になり、値が 0 の場合は行が緑色になります。コードを実行すると、常に else ステートメントに移動します。

コードは次のとおりです。

while ($row = mysqli_fetch_array($result))
{
    $bprofit=$row['profit_loss'];
    if ($bprofit == "1") {
        $colour='#FF0000';
    } else  {
        $colour='#31B404';
    }
    echo "<tr bgcolor=$colour>";
    echo "<td>" . $bprofit . "</td>";
}

出力は次のとおりです。

1
0 0 すべて緑色のみ。

助言がありますか?

4

5 に答える 5

2

$bpprofit に余分な p があります。

if ($bprofit == "1")
于 2013-02-07T09:18:40.160 に答える
1

if ($bpprofit == "1")に変更if ($bprofit == "1")

于 2013-02-07T09:18:18.290 に答える
1

他の回答で言及されているスペルミスに加えて、次のように配列の最初のインデックスを参照する必要があると思います。

if ($bprofit[0] == "1") ...

編集

新しいコードに基づいて、返されている値が数値ではなく文字列であると確信していますか? 数値の場合、ifステートメントは次のようになります。

if ($bprofit == 1) ...

于 2013-02-07T09:20:47.257 に答える
1

このような状況では、var_dump()関数を使用して、変数が実際に何を含み、どのようにアクセスする必要があるかを確認することは決して悪いことではありません。

于 2013-02-07T09:24:49.193 に答える
0

上記のような問題が発生した場合は、PHP でエラー レポートを有効にしてみてください。これを行う 1 つの方法は php.ini を更新することですが、これはエラー報告を望まない他のプロジェクトに影響を与える可能性があるため、必要に応じてアクティブ化することをお勧めします。

重要なのは、設定されていない変数を使用すると通知が表示されるため、通知のレポートを有効にすることです。

以下のコードは簡単な例です。

<?php error_reporting(E_ALL);

if ($undefined == 1) {
    // do stuff
}

このページが表示されると、次の通知が表示されます。

注意: 未定義の変数: 3 行目の /var/www/test/undefined_example.php で未定義

もちろん、これはすべての問題に適した解決策ではないかもしれませんが、どこを見ればよいかを理解するのに役立つかもしれません。

また、より優れたプログラマーになる可能性もあります。後で使用する前に変数が常に割り当てられていない場合は、標準値で変数を宣言するように「思い出させる」ことによって。

于 2013-02-07T09:58:53.517 に答える