将MySQL数据加载到PHP数组中

时间:2012-12-23 23:39:47

标签: php mysql

我正在尝试将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);
};

谢谢,

3 个答案:

答案 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();

请参阅PDO::queryDocsPDOStatement::fetchAllDocs

答案 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();
}