我正在尝试将ID列表加载到PHP数组中,我可以循环遍历。当我在PHPMyAdmin中运行时,我正在使用的SQL查询返回283行。但是,当我运行以下PHP脚本时,它只返回一行(第一行)。如何修改我的代码以包含PHP数组中生成的SQL查询中的所有行?
代码:
//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);
};
谢谢,
答案 0 :(得分:7)
使用mysql_fetch_array将仅返回第一行,然后推进内部计数器。你需要将它作为循环的一部分来实现,如下所示,以获得你想要的东西。
while($row = mysql_fetch_array($active)) {
// Your code here
}
请记住,mysql_函数现在也已弃用,并计划在将来的php版本中删除。使用mysqli_ functions或PDO。
答案 1 :(得分:4)
在PDO中,这是相当直接的:
$rows = $conn->query($active)->fetchAll();
答案 2 :(得分:2)
使用mysqli
,您可以使用mysqli_result::fetch_all,使用PDO
PDOStatement::fetchAll将所有行提取到数组中。
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();
}