我正在尝试重置变量中的数据,以便可以再次调用它。如果第一个查询中有数据,我需要它来运行重置。首先,我要检查数据,其次,如果有数据,则将索引设置回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/

10-09 08:57