Php Sql查询未获取带有变量的结果
我正在尝试使用内部联接执行sql查询。。。代码如下。。。第1部分很好。。它正在动态地为$query\u adlist创建值。。 但是,当我在第2部分中使用这个变量$query_adlist时,它不会获取结果 第一部分Php Sql查询未获取带有变量的结果,php,mysql,Php,Mysql,我正在尝试使用内部联接执行sql查询。。。代码如下。。。第1部分很好。。它正在动态地为$query\u adlist创建值。。 但是,当我在第2部分中使用这个变量$query_adlist时,它不会获取结果 第一部分 $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_r
$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循环后此变量的值为
$query_adlist="&& (ad_clicks.ad_id=44 || ad_clicks.ad_id=43)";
第二部分。
当我执行第2部分中的代码时,它不会获取结果。。
但如果我键入ad_clicks.ad_id=44 | | ad_clicks.ad_id=43而不是变量$query_adlist,它将获取结果。。我很困惑。我做错了什么
$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
");
那是我的错。。列名称错误。。我后来想出来了。
列名ads_id实际上是ad_id回显整个查询,以确保它看起来像您想要的。在查询中混合&&和| |时要非常小心,因为优先级通常不是您所期望的。使用括号确保分组是您想要的。我不明白您为什么要这样动态构建$query\u adlist?为什么你不直接写和点击广告呢?在id=$id的广告中选择广告id?我必须动态创建它,因为一些用户已经创建了50多个广告。这是一个广告网站。我在做一些类似于GoogleAdWords的事情。使用子查询或等效的连接完成与动态构建查询完全相同的事情。为什么广告的数量很重要?