使用后消除使用mysql_fetch_array()生成的数组?

时间:2010-01-27 03:29:37

标签: php arrays mysql

我有一个典型的数据库查询:

$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()创建一个数组?那么,会发生什么?

2 个答案:

答案 0 :(得分:2)

Tae,$result循环结束时falsewhile的原因是mysql_fetch_arrayfalse结束时返回$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)是否返回任何结果。这应该给你你的行数