Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Sql查询未获取带有变量的结果_Php_Mysql - Fatal编程技术网

Php Sql查询未获取带有变量的结果

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

我正在尝试使用内部联接执行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_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的事情。使用子查询或等效的连接完成与动态构建查询完全相同的事情。为什么广告的数量很重要?