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 mulderCURRENT\u DATE
是一个(SQL标准)别名:-您好,我刚刚尝试了它,它工作了90%。我得到了用户名和电费的正确输出,但是对于elecconsump,它给了我一个空值。包含所有能耗值的表的名称是“energyconsumption”,因为您没有给它任何名称。使用SUM(ec.ElecEnergy)作为elecconsump
,您可以在PHP代码中使用$row['elecconsump']
@Dekel,嗯,我试过了,但是我还是得到了一个空值。你检查过错误了吗,比如已经对这个问题发表了评论吗?@Dekel是的。有趣的是,当为其他列填充值时,为什么只为ElecConsump返回一个空值呢。