PHP如何检查MySQL结果是否包含值

时间:2012-07-21 23:59:05

标签: php mysql arrays

我有以下代码:

$getfreq = mysql_query("SELECT wp_term_relationships.term_taxonomy_id FROM wp_term_relationships WHERE wp_term_relationships.object_id = '1737'");

以上结果是phpymyadmin返回5个值:345 456 569 634 723

现在,使用PHP我想检查$ getfreq的内容,看它是否包含569。

我试过这样做:

if (in_array(569,$getfreq,TRUE) {
    echo "Success!";
} else if (in_array(654,$getfreq,TRUE) {
    echo "Not good";
} else {
    echo "Failure";
}

但这不起作用。

这样做:

print_r($getfreq);

结果:Array()。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

$getfreq不是数组,而是结果资源。为了获得数组中的实际行,您需要调用结果上的一个获取函数,例如:

$row = mysql_fetch_assoc($getfreq)

然后在in_array上进行$row

  

这不起作用。如果我使用print_r($ row),我只得到Array([term_taxonomy_id] => 345)。在phpmyadmin中,我的查询返回上面提到的5个结果。剩下的发生了什么?

这是因为您需要遍历整个结果集。这是单行的结果:

while ( false !== ($row = mysql_fetch_assoc($getfreq))) {
   // make your comparison for each row   
}

答案 1 :(得分:1)

尝试:

$res = mysql_fetch_array($getfreq);

然后

if (in_array(569,$res,TRUE) {....

答案 2 :(得分:0)

while ($row = mysql_fetch_assoc($getfreq)) {
    if ($row[term_taxonomy_id] == 345) {
        echo "WORKS!";
    }
}