我想看看在mysql结果中是否存在具有特定值的行,例如,结果中是否有行有product_category=25,我可以在不使用mysql_fetch_array的情况下做到这一点吗?如果不能,那么为什么我不能对同一个结果使用mysql_fetch_array两次?有解决办法吗?我可以将结果复制到另一个变量中并对其运行mysql_fetch_array吗?我试过了,但副本会随着原始文件的更改而更改(因为mysql_fetch_array会遍历它)。
发布于 2011-06-22 19:31:23
您不能使用mysql_fetch_array两次(并获得相同的行),因为它会将指针前移到结果中的行。(因此,如果检索多行,第一次调用将获取第一行,第二次调用将获取第二行。)
正如Shakti已经指出的,使用循环遍历所有行,并测试期望值:
while ($row = mysql_fetch_array($result)) {
if ($row['product_category'] == 25) { /* execute your code here */ }
}发布于 2011-06-22 19:29:40
在不知道你的代码的情况下,我需要猜测。
mysql- result -resource是指向具体结果的游标。这意味着,您只能直接访问当前条目。您必须遍历结果(例如,通过mysql_fetch_array())才能访问每个结果项。如果不能调用两次,则可能只有一个item作为查询结果,因为您可以根据需要多次调用它,但是如果没有更多的行可以从资源中检索,它将始终返回false。
https://stackoverflow.com/questions/6439034
复制相似问题