-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結果リソースの配列ではありません。配列内の実際の行を取得するには、結果に対してフェッチ関数の 1 つを呼び出す必要があります。たとえば、次のようになります。

$row = mysql_fetch_assoc($getfreq)

次に、in_array上で行い$rowます。

これは機能しません。print_r($row) を使用すると、配列 ( [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 に答える