我想查看mysql结果中是否存在具有特定值的行,例如结果中的任何行是否具有product_category = 25 我可以不使用mysql_fetch_array这样做,如果我不能那么为什么我不能在相同的结果上使用mysql_fetch_array两次? 有解决方法吗?我可以将结果复制到另一个变量并运行mysql_fetch_array吗?我尝试过,但副本会随着原始更改而更改(因为mysql_fetch_array会通过它)。
答案 0 :(得分:1)
您不能使用mysql_fetch_array两次(并获取相同的行),因为它会将指针前进到结果中的行。 (因此,如果您检索多行,第一次调用将获取第一行,第二次调用将获取第二行。)
正如Shakti已经指出的那样,使用循环遍历所有行,并测试预期值:
while ($row = mysql_fetch_array($result)) {
if ($row['product_category'] == 25) { /* execute your code here */ }
}
答案 1 :(得分:0)
在不知道你的代码的情况下,我需要猜测。
mysql-result-resource是具体结果的游标。这意味着,您只能直接访问当前条目。您必须迭代结果(例如,通过mysql_fetch_array()
)以访问每个结果项。如果你不能两次调用它,你可能只有一个项目作为查询的结果,因为你可以根据需要多次调用它,但如果你没有更多行要从资源中检索,它将始终返回false
。