【发布时间】:2016-07-27 18:10:21
【问题描述】:
你能帮帮我吗?如果您可以提供解释的答案,我将更加感激,因为我想了解更多信息,实际上我已经感谢这个社区。对我学习有很大帮助。但只有答案对我来说就足够了,因为我真的需要这个代码。
好的,现在我将定义问题。
现在,假设我有这些列的表格。 tbl_transaction -> id |参考 |描述 |价值 |类别 |子类
value 是一个整数列类型,具有一定数量的值。例如 100000 或 200000。
category and subcategory是VARCHAR类型的列,包含category和subcategory。
我想要的输出是它会根据其类别显示价值的总和。对于那个逻辑,我尝试了这个查询(它不是一个有效的 mySQL 代码标准,只是想显示一个逻辑)。
X = select DISTINCT category from tbl_transaction;
select SUM(value) from tbl_transaction WHERE category='X';
它实际上在 MySQL 上运行良好。但我也想将此结果打印到 PHP。问题是我无法将此值与 SUM 和 DISTINCT 类别一起打印。我想要类似的东西(在 PHP 输出/回显中):
类别 |类别总和
一个 | 100000
B | 400000
C | 500000
我在 php 上尝试了这些代码,它只能很好地打印类别,而不是类别的总和。
$query1=mysql_query("select DISTINCT category from tbl_transaction");
echo "<table><tr><td>Category</td>";
while($query2=mysql_fetch_array($query1))
{
echo "<tr><td>".$query2['category']."</td></tr></table>";
$query3=mysql_query("select SUM(value) from tbl_transaction WHERE category ="(select DISTINCT category from tbl_transaction)"");
echo "<table><tr><td>SUM of Category</td>";
while($query4=mysql_fetch_array($query3))
{
echo "<tr><td>".$query4['value']."</td></tr></table>";
}
}
我试了几次,结果是 null / resource id #7 / error。远不止于此,我实际上想要这样的东西。
A类
子类别A - 子类别A的总金额
子类别 B - 子类别 B 的总金额
子类别 C - 子类别 C 的总金额
总计 - A 类的总金额
B 类
子类别A - 子类别A的总金额
子类别 B - 子类别 B 的总金额
子类别 C - 子类别 C 的总金额
总计 - 类别 B 的总金额
提前感谢您,Stackoverflow 社区。
【问题讨论】:
-
在
$query3的行中,你不能在内部使用双引号而不转义它们,因为外部字符串用双引号括起来。使用单引号或转义它们,如\" -
请stop using
mysql_*functions。 These extensions 已在 PHP 7 中被删除。了解 PDO 和 @987654325 的 prepared 语句@ 并考虑使用 PDO,it's really pretty easy。 -
@JeremyHarris 非常感谢你,我以前不知道。下次我会按照你的建议尝试使用单引号或转义它们。
-
@JayBlanchard 我访问了你的网站,看看 mysql_* 函数是如何变成新格式的。我会更多地了解这一点,因为在我的大学里,实际上我并没有真正了解有关 mysql 的最新课程。非常感谢您提供的信息。