我有以下代码:
$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!";
}
}