2012-01-14 11 views
0

私はデータベースからデータを要求し、それをループの外で使用したいので配列に入れます。問題は2番目のクエリでクエリが機能しなかったことです。配列で照会する

$cari2 = "SELECT name, data FROM `dns_rr` WHERE `zone` = '".$row['id']."' LIMIT 0, 30 "; 
$keputusan2 = mysql_query($cari2); 

while($row2 = mysql_fetch_array($keputusan2)) { 
//echo $row2['name']; 
$arrayData[] = $row2['data']; 
$arrayName[] = $row2['name']; 
} 


配列出力:
アレイ([0] => gumblari.cn [1] => gumblar.cn)アレイ([0] => gumblaro.cn [1] =>オクラホマ)

また、クエリを実行する前にimplodeを使用します。
$ implodeName = implode( "、"、$ arrayName); $ implodeData = implode( "、"、$ arrayData);

破出力:
gumblaro.cnoklagumblari.cngumblar.cn

$cari3 = "SELECT data, name FROM `dns_rr` WHERE data IN ($implodeData,  $implodeName)"; 
$keputusan3 = mysql_query($cari3); 

while($row3 = mysql_fetch_array($keputusan3)) { 

echo $row3['data']; 
echo $row3['name']; 

} 

クエリなし2($ cari3)私は、このエラーを与える:
警告:パラメータ1は資源であることを期待)(は、mysql_fetch_arrayを、ブール



お願いします。私が必要とするのは、ループの最中に最初のクエリのデータを使用して配列に頼った理由です。ありがとうございました。

+0

念入りに出力されていますか? 'gumblaro.cnoklagumblari.cngumblar.cn'? –

+0

whileループに$ cari3を入れることにしました。問題が解決しました。みんな助けてくれてありがとう:) – sg552

答えて

1

スクリプトで他の問題(SQLインジェクションなど)を無視すると、クエリが失敗したため、$ keputusan2の値がブール値になる可能性が高くなります。 $ cari3が有効であることを確認する必要があります。私の推測では、2つの変数は引用されず、値ではなくSQLとして解釈されます。 2つの配列が 'value1'、 'value2'のように見えるようにする必要があります。 '' '。implode(' "、" '、$ array)を使用してこれを行うことができます。基本的には、実行する前にクエリを出力し、何が間違っているかを確認してください。また、mysql_error()が何を示しているかを見てください。

関連する問題