-1

少し問題があります...

$ _GETを使用して配列をフェッチし、出力値をMySQLデータベースからフェッチされた配列の行と照合したいと思います。whileループまたはforeachループでこれを実行したいのは、一致が見つかったら、一致する行で特定の処理を実行する必要があるためです。これらの行の他の列を使用して、いくつかの変数を設定する必要があります。コードは次のとおりです。

<?php   
$wineneeds=mysql_query("SELECT * from wineneeds");
$needarray=mysql_fetch_array($wineneeds);

foreach($_GET['Need'] as $Needs)
{
    while($needarray)
    {
        if($needarray['Needset']=="$Needs")
            {
                $sweet=$needarray['Sweet'];
            }
        else{}
    }
}

読み込み時間が無限である場合を除いて、ページにエラーは発生しません...

エラーが見つかりません。

私はPHPを初めて使用するので、このようなかなり基本的なものに固執したいと思います。よろしくお願いします-アレックス:)

4

1 に答える 1

1

配列を呼び出しているだけで配列を反復するのではありません。

ループを逆にして、次のようにmysql_fetch_assocを使用することをお勧めします。

while ($row = mysql_fetch_assoc($wineneeds)) {
    foreach ($_GET['Need'] as $Needs) {
        if ($row['Needset'] == $Needs) {
            $sweet=$row['Sweet'];
        }
    }
}

mysql_fetch_row単一のmysql_fetch_assoc行を列の配列として返します。行セット全体を元に戻すには、whileループで呼び出す必要があります。1回だけ呼び出すと、行が返され、その行がtrueであるかどうかを確認すると、常にtrueになり、whileループが永久に実行されます。上記の解決策は問題を解決します。

于 2013-03-23T21:31:32.670 に答える