mysql_data_seek和mysql_num_rows

时间:2012-09-11 21:18:31

标签: php mysql reset

我正在尝试重置变量中的数据,以便我可以再次调用它。如果第一个查询中有数据,我需要它来运行重置。首先我要检查数据,其次,如果有数据,我将索引设置回0.

这适用于我的localhost环境,但不适用于我的实时环境。我知道我收到了错误,因为第一个查询没有显示任何结果,因此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);
}

有没有更好的方法可以检查第一个查询是否有信息,如果没有找到任何信息,可以不吐出错误?

1 个答案:

答案 0 :(得分:1)

注意关于使用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_更新为更新的方法...这个底层解决方案将保持不变。

如果没有回复,请发布更多代码,以便我们了解您尝试做的原因和内容。