mysql_data_seek and mysql_num_rows


mysql_data_seek and mysql_num_rows

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

有没有更好的方法可以检查第一个查询是否有信息,而不会在没有找到任何信息的情况下抛出错误?

注意关于使用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_,使其使用更新的方法。。。这个基本解决方案将保持不变。

如果这还不能解决问题,请发布更多的代码,这样我们就可以理解为什么和你想做什么。