首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在使用后删除使用mysql_fetch_array()生成的数组?

问是否在使用后删除使用mysql_fetch_array()生成的数组?
EN

Stack Overflow用户
提问于 2010-01-27 11:29:37
回答 2查看 356关注 0票数 1

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

代码语言:javascript
复制
$query = mysql_query('SELECT titulo,referencia FROM cursos WHERE tipo=1 AND estado=1');

我可以将其转换为数组并打印数据:

代码语言:javascript
复制
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()创建一个数组?那么,发生了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-27 12:55:56

Tae,您的$result在while循环末尾为false的原因是,当mysql_fetch_array到达查询集末尾时,它将返回false。(参见主题上的PHP Docs )当您到达查询集的末尾时,$results被设置为false,并且退出while循环。如果要保存数组(数据库行结果)以备以后使用,请按照Chacha102的建议进行操作,并在从数据库中提取每一行时将其存储起来。

代码语言:javascript
复制
$data = array();
while($results = mysql_fetch_array($query)) {
    $data[] = $results;
}
foreach ($data as $result_row) {
    echo $result_row['referencia'];
    ... etc.
}
票数 2
EN

Stack Overflow用户

发布于 2010-01-27 11:33:31

尝尝这个

代码语言:javascript
复制
while($results = mysql_fetch_array($query))
{
    $data[] = $results;
}

现在,所有的结果都在$data中,你可以在那里做任何你想做的事情。

正如Anthony所说,您可能希望确保数据实际上是从查询中检索的。检查echo mysql_num_rows($query)是否返回任何结果。这应该会给出您得到的行数

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2144393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档