-1

これが私のコードです:

<?php
  $query1 = 'SELECT * From Drink';
  $GetName= mysql_query($query1);?>

<?php foreach ($GetName as $GetNames) : ?>
        <?php echo $GetNames['Name']; ?>
        <?php endforeach; ?>

私が得ているエラーはこれです:

Warning: Invalid argument supplied for foreach() in (removed for privacy) on line 16

これに似た他の質問を見てきましたが、質問に完全には答えていません。これを行う別の方法を見つけることに(現在)興味はありません。すでに別の方法がありますが、この方法を教えられたので、なぜ失敗したのか知りたいです。

次の理由により、データベースまたはクエリの問題ではありません。

<?php
  if ($GetName) {
            while($row = mysql_fetch_array($GetName)) {
                $name = $row["Name"];
                echo "$name<br>";
            }
        }

うまく動作します。

誰でも私を助けることができますか?

4

3 に答える 3

2

理由は、MySQLクエリから返されるものがリソースです。そして、それはforeachが動作することを可能にするイテレータインターフェースを実装していません。

Uはループする必要があり、毎回、新しい結果セットを表示するには、mysql_fetch_array($GetName)falseが返されるまで呼び出す必要があります。それはあなたがループを停止するときです。

他に簡単な方法は絶対にありません

つまり、uを使用する必要がありますwhile。PDOのような拡張機能を使用する場合、次のようなものを使用できます。fetchALL

その他のオプションについては、PDOおよびMySQLiのマニュアルをお読みください。

于 2013-03-24T01:47:13.463 に答える
0

これを入力してください

foreach ($GetNames as $GetName => $row)
{

     //echo as you like
    echo ... $row['Name'] ;
}
于 2013-03-24T01:46:47.107 に答える
0

それで、私はそれを働かせました。問題は、データベースへの接続方法でした。IOIO MAD が示唆しているように、PDO に切り替えると、問題なく動作しました。また、Itay Moav -Malimovka の提案によりエラーが解消されたことを称賛します。皆様のご協力に感謝いたします。解決できてよかったです。

于 2013-03-24T02:17:46.013 に答える