2016-11-05 20 views
-3

内部結合を使用してSQLクエリを実行しようとしています...コードは以下のとおりです...第1部はうまく動作し、$ query_adlistの値を動的に作成しています しかし、私はこの変数$ query_adlistをパート2で使用しても、結果をフェッチしません。Sqlクエリが変数を使用して結果をフェッチしていません

PART 1

$query_adlist=""; 
$ad_list_countx=mysql_query("SELECT COUNT(ads_id) FROM ads WHERE id=$id"); 
if($ad_list_countx){$ad_list_count=mysql_fetch_row($ad_list_countx);} 
if(isset($ad_list_count) && $ad_list_count[0] > 0) 
{ 
    $query_adlist .="&& ("; 
    $query_ad_listx=mysql_query("SELECT ads_id FROM ads WHERE id=$id"); 
    if(isset($query_ad_listx)) 
    { 
     $sign=" || "; 
     $count=1; 

      while($query_ad_list=mysql_fetch_array($query_ad_listx)) 
      { if($ad_list_count[0] == $count){$sign=") &&";} 
       $query_adlist .="ad_clicks.ads_id=".$query_ad_list['ads_id'].$sign; 
       $count++; 
      } 
     } 

    } 

この変数の値whileループiは部分2のコードを実行すると、それは結果をフェッチしない

$query_adlist="&& (ad_clicks.ad_id=44 || ad_clicks.ad_id=43)"; 

PART 2 した後。 。 ですが、もし私がad_clicks.ad_id = 44を入力すれば||変数$ query_adlistの代わりにad_clicks.ad_id = 43、結果をフェッチします。私はconfuesdです。私は何が間違っている。

$daily_clickx1=mysql_query(" 
SELECT COUNT(ad_clicks.ad_id) FROM ad_clicks 
INNER JOIN members ON ad_clicks.id=members.id 
WHERE members.ref_id1=$id 
&& ad_clicks.date='$date_modified' $query_adlist 
"); 
+0

完全なクエリをエコーし​​て、それが望ましいものかどうかを確認します。 – Barmar

+0

クエリで '&&'と '||'を混在させるときは、通常はあなたが期待するものではないので、非常に注意してください。括弧を使用して、グループ化が必要なものであることを確認します。 – Barmar

+0

なぜ '$ query_adlist'を動的に構築しているのか分かりません。なぜあなたは 'AND ad_clicks.ads_id IN(SELECT ads_id FROM ads WHERE id = $ id)'と書いてみませんか? – Barmar

答えて

0

これは私の間違いでした。列名が間違っていました。私は後でそれを理解しました。 列名ads_idは実際にはad_idでした

関連する問題