我有一个典型的数据库查询:
$query = mysql_query('SELECT titulo,referencia FROM cursos WHERE tipo=1 AND estado=1');
我可以在数组中转换它并打印数据:
while ($results=mysql_fetch_array($query)): ?>
echo $results['referencia'];
// and so...
endwhile;
但在某些情况下我需要在网页的另一部分打印相同的数据,但$ results数组似乎是空的(我使用var_dump($results)
并得到bool(false)
)。我计划使用我学过的阅读Create PHP array from MySQL column,但不应该mysql_fetch_array()
创建一个数组?那么,会发生什么?
答案 0 :(得分:2)
Tae,$result
循环结束时false
为while
的原因是mysql_fetch_array
在false
结束时返回$results
查询集。 (请参阅主题的PHP Docs)当您到达查询集的末尾时,false
设置为while
并退出$data = array();
while($results = mysql_fetch_array($query)) {
$data[] = $results;
}
foreach ($data as $result_row) {
echo $result_row['referencia'];
... etc.
}
循环。如果你想保存数组(数据库行结果)以供日后使用,那就像Chacha102建议并存储从数据库中提取的每一行一样。
{{1}}
答案 1 :(得分:1)
试试这个
while($results = mysql_fetch_array($query))
{
$data[] = $results;
}
现在,您的所有结果都在$data
,您可以随意做任何事情。
正如Anthony所说,您可能希望确保实际从查询中检索数据。检查echo mysql_num_rows($query)
是否返回任何结果。这应该给你你的行数