1

データベースにクエリを実行し、データを HTML テーブルにダンプしています。私のデータベース キーの 1 つは「time_expire」と呼ばれ、-1 の値は決して意味しません。したがって、生データの代わりに HTML テーブルで "never" の効果を示すために、エコーされる前に変数を変更しようとしています。

これは私のコードです

<?php
        $sql = "SELECT * FROM penalties ORDER BY id DESC";
        $result = mysql_query($sql);
        while ($rows = mysql_fetch_array($result)) {

            if ($rows['time_expire'] = '-1') {
                $rows['time_expire'] = '<span class="label label-important">Permanent</span>';
            }

            echo "<tr>";
            echo '<td><a href="ban.php?banid=' . $rows['id'] . '">' . $rows['id'] . '</a></td>';
            echo "<td>" . $rows['client_id'] . "</td>";
            echo "<td>" . $rows['type'] . "</td>";
            echo "<td>" . date('m/d/Y', $rows['time_add']) . "</td>";
            echo "<td>" . $rows['duration'] . "</td>";
            echo "<td>" . $rows['time_expire'] . "</td>";
            echo "<td>" . $rows['reason'] . "</td>";
            echo "</tr>";
        }
        ?>

このコードはエラーにはなりませんが、生データが異なっていても、HTML テーブルのすべての行の有効期限の値は「never」です。

4

4 に答える 4

3

これは if ステートメントの一般的なタイプミスのようです

if ($rows['time_expire'] = '-1') [
                         ^
                         |

インタープリターにこれらを見つけてもらいたい場合は、次のようなyoda 条件を使用してみてください。

if ('-1' = $rows['time_expire'])

このフォームではエラーが発生しますが、正しいフォームはどちらも正常に機能します。

'-1' == $rows['time_expire'] 

また

$rows['time_expire'] == '-1'
于 2013-06-24T06:15:10.853 に答える
3

私はそれが想定されていると思います:

if ($rows['time_expire'] == '-1')

いいえ

if ($rows['time_expire'] = '-1')
于 2013-06-24T06:13:55.400 に答える
0

If 条件を に変更してみてください if ($rows['time_expire'] == '-1')$rows['time_expire']現在、変数が等しいと言っている条件は、'-1'常に true を返すものです。無制限のループに陥る可能性があります。

于 2013-06-24T06:16:21.110 に答える
0

まず、タイプはtime_expire何ですか?

time_expireが数値の 場合、条件を次のように変更する必要がif ($rows['time_expire'] == -1)あります。これは適切に評価されます。

$rows['time_expire']次に、条件チェックは実際に値をsingleに割り当てています。 =double=のようにする必要があります==

于 2013-06-24T06:32:47.117 に答える