-1

私はこのコードを持っています:

include('config.php');

$result = mysql_query("SELECT * FROM system");
while($row = mysql_fetch_array( $result )) {
    $name_system = $row['name'];
    $value_system = $row['value'];

    if($name_system=='website_register' AND $value_system==1)
        {$register_system = 1;}
    else
        {$register_system = 0;}

    if($name_system=='website_offline' AND $value_system==1)
        {$offline_system = 1;}
    else
        {$offline_system = 0;}
}

私の問題は、ループが「システム」テーブルの最後のレコードのみを表示するという事実です。

4

6 に答える 6

1

私の問題は、ループのみが最後のレコードを表示するという事実です

いいえ、問題はループが何も表示しないことです。カーソルがテーブル全体をブラウズし、最後の行だけ$rowが印刷されるときに、ループの外にあるコードで表示が行われるため、一度だけ実行されます。

echoor printorを実行するコードをループに移動すると、機能します。

于 2012-09-21T15:18:59.210 に答える
0

これはずさんですが、ループを通過するときに何が起こっているかを示します。

include('config.php');

$result = mysql_query("SELECT * FROM system");
while ($row = mysql_fetch_array($result)) {
    $name_system = $row['name'];
    $value_system = $row['value'];

    if($name_system=='website_register' AND $value_system==1)
    {$register_system = 1;}
    else
    {$register_system = 0;}

    if($name_system=='website_offline' AND $value_system==1)
    {$offline_system = 1;}
    else
    {$offline_system = 0;}

    print "$name_system, $value_system, $register_system, $offline_system<br />";
}
于 2012-09-21T15:18:49.863 に答える
0

あなたの問題は、同じ変数で毎回最後の値をオーバーライドしていることです。代わりに、配列内の新しいセルとして追加します。する代わりに各場所など

$register_system = 1;

行う

$register_system[] = 1;

最後に、print_r($register_system)すべての値を確認することができます。配列のキーが 0,1,... であることに気付くでしょう。次のように$row['name']、 をキーとして使用することを検討できます。

$register_system[$row['name']] = 1

もちろん、これらは異なる値であると仮定します。

于 2012-09-21T15:19:14.060 に答える
0

ループ内にあるecho/print必要があります。

于 2012-09-21T15:19:14.167 に答える
0

必要に応じてブレークを使用してみてください...

フラグ変数のロジックを使用...

于 2012-09-21T15:20:25.117 に答える
0

アイテムを配列に格納したい場合があります。

$result = mysql_query("SELECT * FROM system");
while($row = mysql_fetch_array( $result )) {
    $name_system[] = $row['name'];
    $value_system[] = $row['value'];

    if($row['name']=='website_register' AND $row['value']==1)
        {$register_system[] = 1;}
    else
        {$register_system[] = 0;}

    if($row['name']=='website_offline' AND $row['value']==1)
        {$offline_systemp[] = 1;}
    else
        {$offline_system[] = 0;}
}

そうすれば、次のようにして各値を出力できます。

for ($i = 0; $i < count($name_system); $i++) {
    echo 'Name system is: '.$name_system[$i];
}
于 2012-09-21T15:21:32.670 に答える