Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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 MYSQL没有返回所有行_Php_Mysql_Sql - Fatal编程技术网

Php MYSQL没有返回所有行

Php MYSQL没有返回所有行,php,mysql,sql,Php,Mysql,Sql,我想从全年的数据库中得到结果 以下是查询: 选择COUNT(tickets\u replay.id)作为金额、users.name、, MONTHNAME(tickets\u replay.created)作为月份 从'tickets\u replay'开始 在票据上加入用户\u replay.user\u id=users.id 哪里有票重播。'created'LIKE'2018%' 和门票重播。`deleted`='0000-00-00:00:00' 和票不一样 “Uitvoerdatum

我想从全年的数据库中得到结果

以下是查询:

选择COUNT(tickets\u replay.id)作为金额、users.name、,
MONTHNAME(tickets\u replay.created)作为月份
从'tickets\u replay'开始
在票据上加入用户\u replay.user\u id=users.id
哪里有票重播。'created'LIKE'2018%'
和门票重播。`deleted`='0000-00-00:00:00'
和票不一样
“Uitvoerdatum aangear:%”
和票不一样
'状态为Aangelover naar:%'
AND users.deleted='0000-00-00:00:00'
AND users.id=21按月分组(票证\u replay.created)
在我的PhpMyAdmin中,我得到了:

在我的代码中,我得到了以下信息:

PHP代码:

$sql_dylan = "
SELECT COUNT(tickets_replay.id) AS amount, users.name,
  MONTHNAME(tickets_replay.created) AS month 
    FROM `tickets_replay` INNER
    JOIN users ON tickets_replay.user_id = users.id 
      WHERE tickets_replay.`created` LIKE '2018%' 
        AND tickets_replay.`deleted` = '0000-00-00 00:00:00'
        AND tickets_replay.comment NOT LIKE
         'Uitvoerdatum aangepast naar:%' 
        AND tickets_replay.comment NOT LIKE
         'Status is aangepast naar:%' 
        AND users.deleted = '0000-00-00 00:00:00'
        AND users.id = 21 GROUP BY MONTH(tickets_replay.created)
";

if ($results_dylan = mysqli_query($sql_connect, $sql_dylan)){
    while($rows_dylan = mysqli_fetch_assoc($results_dylan)) {
        printr($rows_dylan, false);
    }
}


function printr($data, $exit = TRUE)
{
    if ($data) {
        print '<pre>';
        print_r($data);
        print '</pre>';
    }
    if ($exit) {
        exit;
    }
}
$sql\u dylan=”
选择COUNT(tickets\u replay.id)作为金额、users.name、,
MONTHNAME(tickets\u replay.created)作为月份
从'tickets\u replay'开始
在票据上加入用户\u replay.user\u id=users.id
哪里有票重播。'created'LIKE'2018%'
和门票重播。`deleted`='0000-00-00:00:00'
和票不一样
“Uitvoerdatum aangear:%”
和票不一样
'状态为Aangelover naar:%'
AND users.deleted='0000-00-00:00:00'
AND users.id=21按月分组(票证\u replay.created)
";
if($results\u dylan=mysqli\u query($sql\u connect,$sql\u dylan)){
while($rows\u dylan=mysqli\u fetch\u assoc($results\u dylan)){
printr($rows\u dylan,false);
}
}
函数printr($data,$exit=TRUE)
{
如果($数据){
打印“”;
打印(数据);
打印“”;
}
如果($退出){
出口
}
}
我使用的是完全相同的查询,但是我没有得到所有的结果。 我怎样才能改变这一点?

简短回答: 您得到不同结果的原因是您针对不同的数据集进行测试

我们怎么知道的

查看这两个位置的屏幕截图中的
March
April

您的PHPMyAdmin:

您的PHP代码:

这表明,因为SQL是完全相同的,所以数据必须是不同的


因此,请仔细检查您的MySQL连接是否连接到正确数据库上的正确表。

这被标记为“php”;你有它的代码和循环方式吗?@Gufran你的编辑应该重新编辑。不要在这里使用
。这可能是一个愚蠢的问题,但您确定您与SQL客户端连接的数据库与Php代码连接的数据库相同吗,这是一个很大的禁忌。
datetime
类型的存在是有原因的……使用它。如果您将列更改为适当的日期时间,则可以使用
YEAR(tickets\u replay.`created`=“2018”
获得与当前语句相同的结果。顺便说一句,也许users.name应该包含在组中。我知道MySql对GROUPBY中缺少未聚合字段有点宽容,但至少它会使SQL更符合ANSI SQL。