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


PHP How to check if MySQL result contains value

我有以下代码:

$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()中。

有什么想法吗?

try:

$res = mysql_fetch_array($getfreq);

然后

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

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

$row = mysql_fetch_assoc($getfreq)

然后在$row上执行in_array

这行不通。如果我使用print_r($row),我只得到Array([term_taxonomy_id]=>345)。在phpmyadmin中,我的查询返回上面提到的5个结果。其他人怎么了?

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

while ( false !== ($row = mysql_fetch_assoc($getfreq))) {
   // make your comparison for each row   
}
while ($row = mysql_fetch_assoc($getfreq)) {
    if ($row[term_taxonomy_id] == 345) {
        echo "WORKS!";
    }
}