我正在尝试重置变量中的数据,以便可以再次调用它。如果第一个查询中有数据,我需要它来运行重置。首先,我要检查数据,其次,如果有数据,则将索引设置回0。
这在我的本地主机环境中有效,但在我的实时环境中无效。我知道我遇到了错误,因为第一个查询没有得到任何结果,所以mysql_num_rows($query)
为空。
我收到错误:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource.
(当第一个查询显示结果,成功重置并显示第二个查询时,此代码有效。)
if (mysql_num_rows($query)){
mysql_data_seek($query, 0);
}
有没有一种更好的方法可以检查第一个查询是否包含信息,而如果找不到任何信息,则不会吐出错误?
最佳答案
注意有关使用mysql_的其他注释?功能。
如果您出于某种原因要多次遍历结果,那么请按照Marc B的评论在第一遍中将它们转储到数组中。例如(仍然使用mysql_?函数);
$result = mysql_query($query);
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
while($row = mysql_fetch_row($result)){
$myResultSet[]=$row;
}
完成后,我们可以根据需要多次遍历该集合
foreach($myResultSet as $row){ # note foreach resets each time
# do stuff with $row['fieldname']
}
但是,您应该趁此机会将mysql_更新为更多最新的方法...此基础解决方案将保持不变。
如果仍不能解决问题,请发布更多代码,以便我们了解原因和尝试执行的操作。
关于php - mysql_data_seek和mysql_num_rows,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12378071/