1

更新: for ループを使用して解決しました:

for ($i=0; $i < mysql_num_rows($result); $i++) { 
$row = mysql_fetch_assoc($result);
echo $row['name'];
}

元の質問:

これはちょっとばかげているように見えます。以前にこれを達成できたので、非常に単純なものが欠けていると確信しています。とにかく、配列内のすべての項目に対してテキストをエコーし​​たいです。この配列は mySQL から派生しています。

ここにコードがあります

while ($row = mysql_fetch_assoc(mysql_query("SELECT * FROM files"))) {
echo $row['name'];
}
4

3 に答える 3

1

完全なコードを投稿できますか? データベース接続を忘れたと思います。

これを試して:

    $result = mysql_query("SELECT * FROM files") or die (mysql_error());
    while ($row = mysql_fetch_assoc($result)) {
        var_dump($row['name']);
    }

これはエラーになります。あちらで間違いを犯したと思います。また、「a」値があることを 100% 確認するために、その間に $row を var_dump() します。

また、行が存在することは確かですか? レコードがない場合、 $row のエコーは存在しないため機能しません。

また、同様に E_ALL にエラー報告を設定します。

    error_reporting(E_ALL);

また、while() ループ内でクエリを実行しているため、クエリは永久に実行され続けます。したがって、最初にクエリを実行し、それを変数に入れてから、結果をループします。(上記の私のコードを参照してください)

于 2012-08-25T12:25:42.530 に答える
0

あなたの質問から、それはとても簡単に思えます。この方法で試してみてください。

    $sql="SELECT name From files";
    $names = $db->query($sql);
    while($name1 = $db->fetchByAssoc($names))
    {
        echo $name1['name'];
    }
于 2012-08-25T12:44:34.690 に答える
0

クエリが複数の行を返す場合、ループの下に移動するため、while ループの代わりにクエリを個別に実行できます。結果の最初のデータのみを表示し、ループは無限です。

于 2012-08-25T12:27:04.527 に答える