1

ループできる PHP 配列に ID のリストをロードしようとしています。私が使用している SQL クエリを PHPMyAdmin で実行すると、283 行が返されます。ただし、次の PHP スクリプトを実行すると、1 行 (最初の行) しか返されません。コードを変更して、結果の SQL クエリのすべての行を PHP 配列に含めるにはどうすればよいですか?

コード:

//Get active listing IDs 
$active = "SELECT L_ListingID FROM `markers`";
$active = mysql_query($active) or die(mysql_error());

if(is_resource($active) and mysql_num_rows($active)>0){
$row = mysql_fetch_array($active);
print_r($row);
};

ありがとう、

4

3 に答える 3

7

mysql_fetch_array を使用すると、最初の行のみが返され、内部カウンターが進められます。必要なものを取得するには、次のようなループの一部として実装する必要があります。

while($row = mysql_fetch_array($active)) {
 // Your code here
}

mysql_ 関数も非推奨になり、php の将来のバージョンで削除される予定であることに注意してください。mysqli_ 関数または PDO を使用します。

于 2012-12-23T23:42:04.133 に答える
4

PDO では、かなり簡単です。

$rows = $conn->query($active)->fetchAll();

PDO::queryドキュメントPDOStatement::fetchAllドキュメントを参照してください。

于 2012-12-23T23:48:32.230 に答える
2

mysqli_result ::fetch_allmysqli使用し、 PDOStatement::fetchAllを使用してすべての行を配列にフェッチします。PDO

mysqli のコード

$sql = "SELECT L_ListingID FROM `markers`";
$result = $mysqli->query($sql);
if ($result !== false) {
    $rows = $result->fetch_all();
}

PDOではほぼ同じです

$sql = "SELECT L_ListingID FROM `markers`";
$result = $pdo->query($sql);
if ($result !== false) {
    $rows = $result->fetchAll();
}
于 2012-12-23T23:50:54.533 に答える