-2

我有以下代码:

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

有任何想法吗?

4

3 回答 3

1

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

$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   
}
于 2012-07-22T00:01:22.947 回答
1

尝试:

$res = mysql_fetch_array($getfreq);

然后

if (in_array(569,$res,TRUE) {....
于 2012-07-22T00:02:33.177 回答
0
while ($row = mysql_fetch_assoc($getfreq)) {
    if ($row[term_taxonomy_id] == 345) {
        echo "WORKS!";
    }
}
于 2012-07-22T00:46:13.627 回答