使用while获取查询结果到数组中

时间:2014-01-19 03:48:23

标签: php mysql arrays pdo while-loop

我是PHP的新手。事实上,我刚刚读完了它的介绍,所以请原谅我,如果我解释得很糟糕,因为我很缺乏经验。我正在学习如何使用PDO连接到数据库,并且我想将查询结果转储到数组中,以便我想要使用的图形库可以绘制在最后一天访问特定位置的数量。其他一切正常,查询返回使用phpMyAdmin运行时的预期结果。我不能直接从查询中使用结果,因为库由于某种原因不理解它。

因此,我有想法使用while迭代结果并将信息添加到数组中。但由于某种原因,只添加了最新的结果。我知道我在这里遗漏了一些非常简单的东西,但我仍然无知知道我需要做什么。

# Establish the connection
$conn = new PDO("mysql:host=$host;dbname=$database", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$data = $conn->query('SELECT HOUR( TIMESTAMP ) AS HOUR , COUNT( detected_key ) AS num_rows
                            FROM Visitors
                            GROUP BY HOUR( TIMESTAMP ) 
                            LIMIT 0 , 24');

while($row = $data->fetch(PDO::FETCH_ASSOC)) {
$visit = array (
$row['HOUR'] => $row['num_rows']
);
}

1 个答案:

答案 0 :(得分:1)

像这样重写while

while($row = $data->fetch(PDO::FETCH_ASSOC)) {
$visit[$row['HOUR']]= $row['num_rows'];
}

print_r($visit); // "prints your array"

您正在获取最后一个值,因为您每次都在覆盖。