Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.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 在查询中找不到结果_Php_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Php 在查询中找不到结果

Php 在查询中找不到结果,php,mysql,sql,phpmyadmin,Php,Mysql,Sql,Phpmyadmin,我的查询中出现错误,无法检测问题的根源 以下是查询:- $query = "SELECT useraccount.Username, tariff.Name as tariffs, sum(energyconsumption.ElecEnergy) FROM useraccount INNER JOIN tariff ON useraccount.tariffs = tariff.id INNER JOIN energyconsumption ON energycon

我的查询中出现错误,无法检测问题的根源

以下是查询:-

$query = "SELECT useraccount.Username, tariff.Name as tariffs, 
    sum(energyconsumption.ElecEnergy)
    FROM useraccount
    INNER JOIN tariff 
ON useraccount.tariffs = tariff.id
INNER JOIN energyconsumption
ON energyconsumption.User = useraccount.id
WHERE Date = CURRENT_DATE
GROUP BY useraccount.Username, tariff.Name as tariffs";
在查询之后,我找到了将输出存储在数组中的代码:

 $result = mysqli_query($conn,$query);
        $r = array();
        if($result->num_rows){

                while($row = mysqli_fetch_array($result)){
                array_push($r, array( 'Username' => $row['Username'],
                'TariffName' => $row['tariffs'], 'ElecConsump' => $row['ElecEnergy']


                ));

                }

        } echo json_encode(array('results' => $r));
我在下面的行中得到一个错误:if($result->num\u rows)

这是执行查询时的输出:

注意:尝试在第22行的C:\xampp\htdocs\Project\Client\newone.php中获取非对象的属性 {“结果”:[]}

请注意:

这就是我最初的产出:

{"results":[{"Username":"absc868","TariffName":"s1","ElecConsump":"2000"},  
{"Username":"absc868","TariffName":"s1","ElecConsump":"1900"}]}
但是通过我上面写的这个新查询,我试图产生这个输出 我正在尝试生成以下输出: ={“结果”:[{“用户名”:“absc868”,“TariffName”:“s1”,“ElecConsump”:“3900”}

也就是说,结果集只有一个条目(用户名、关税和电子消费),而不是两个条目(用户名、关税和电子消费)


再次感谢所有阅读并参与此线程的人

一个问题是
组中的
as
。我建议您使用表别名:

SELECT ua.Username, t.Name as tariffs,
       SUM(ec.ElecEnergy) as ElecEnergy
FROM useraccount ua INNER JOIN
     tariff t
     ON ua.tariffs = t.id INNER JOIN
     energyconsumption ec
     ON ec.User = ua.id
WHERE Date = CURRENT_DATE
GROUP BY ua.Username, t.Name;

将查询直接运行到phpmyadmin中,并检查它是否在phpmyadmin中工作或是否出现任何错误?非对象表示查询失败;检查错误
mysqli\u error($conn)
。在Google上搜索错误消息,你会发现很多很多重复的问题。问题是数据库查询失败。在假设成功之前,你需要检查数据库中的错误。
CURRENT\u DATE
显然是一个函数。@u\u mulder
CURRENT\u DATE
是一个(SQL标准)别名:-您好,我刚刚尝试了它,它工作了90%。我得到了用户名和电费的正确输出,但是对于elecconsump,它给了我一个空值。包含所有能耗值的表的名称是“energyconsumption”,因为您没有给它任何名称。使用
SUM(ec.ElecEnergy)作为elecconsump
,您可以在PHP代码中使用
$row['elecconsump']
@Dekel,嗯,我试过了,但是我还是得到了一个空值。你检查过错误了吗,比如已经对这个问题发表了评论吗?@Dekel是的。有趣的是,当为其他列填充值时,为什么只为ElecConsump返回一个空值呢。