web-dev-qa-db-ja.com

PHPでmysqlクエリを行ごとに繰り返す方法

わかりました。データベースにクエリを実行して、特定の値を持つすべての行を選択しようとしています。その後、mysql_fetch_array()を使用してクエリを配列に変換し、foreachループを使用してフェッチされた配列を行ごとに反復してみました。

<?php
$query = mysql_query("SELECT * FROM users WHERE pointsAvailable > 0 ORDER BY pointsAvailable Desc");
$queryResultArray = mysql_fetch_array($query);
foreach($queryResultArray as $row)
{
    echo $row['pointsAvailable'];
}
?>

PointsAvailable列以外の列に対してこれを行うと、テキスト型の「name」という名前の列が返されますが、1文字しか返されません。

返されたクエリを行ごとに繰り返し、現在の行からデータの特定の列をフェッチできるようにするにはどうすればよいですか?

11
AFK
$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf("ID: %s  Name: %s", $row[0], $row[1]);  
}

またはMYSQL_ASSOCを使用すると、名前付き列を使用できるようになります

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf("ID: %s  Name: %s", $row["id"], $row["name"]);
}
27
Trevor

はい、mysql_fetch_array($result)を使用するのが方法です。

0
Vatsala