PHP 和 MySQL:显示某些内容的总和,按不同类别分类

2024-03-17

你能帮我一下吗?如果您能提供答案和解释,我会更加感激,因为我想了解更多,实际上我已经感谢这个社区了。对我的学习帮助很大。但只有答案对我来说就足够了,因为我真的需要这个代码。

好的,现在我将定义问题。

现在,假设我有包含这些列的表格。 tbl_transaction -> id | tbl_transaction -> id |参考|描述 |价值|类别 |子类别

value 是一个整数列类型,具有一定的值。例如 100000 或 200000。

类别和子类别是VARCHAR类型列,包含类别和子类别。

我想要的输出是它将根据其类别显示价值总和。对于该逻辑,我尝试了这个查询(它不是有效的 mySQL 代码标准,只是想显示一个逻辑)。

X = select DISTINCT category from tbl_transaction;
select SUM(value) from tbl_transaction WHERE category='X';

它实际上在 MySQL 上运行得很好。但我也想将这个结果打印到 PHP 中。问题是我无法将这个值与 SUM 和 DISTINCT 类别一起打印。我想要类似的东西(在 PHP 输出/回显中):

类别 |类别总和

一个 | 100000

乙| 40万

C | 50万

我在 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 / 资源 id #7 / 错误。远不止于此,我实际上想要这样的东西。

A类

子类别 A - 子类别 A 的总额

子类别 B - 子类别 B 的总额

子类别 C - 子类别 C 的总额

总计 - A 类总计

B类

子类别 A - 子类别 A 的总额

子类别 B - 子类别 B 的总额

子类别 C - 子类别 C 的总额

总计 - B 类总计

预先感谢您,Stackoverflow 社区。


您可以尝试像这样的 sql 语句来对按列分组的值求和:

SELECT SUM(value) as Total_val, category FROM tbl_transaction GROUP BY category

你可以像这样在 PHP 中使用它: (我将使用 PDO 键入,因为 mysql_ 命令现在已经过时,不推荐)

//Creating connection
$connection=new PDO("mysql:host=127.0.0.1;dbname=database_name","root","");

//Creating main query, fetching main categories
$query=$connection->prepare("SELECT category, SUM(value) as MAIN_CAT_TOTAL_VAL FROM tbl_transaction GROUP BY category");
$query->execute(); //executing query

foreach($query->fetchAll() as $q) //fetching results
{
    echo "<b>".$q["category"].":<br/></b>"; //printing main category name

    //creating second query which sums value column and groups by sub category
    $query2=$connection->prepare("SELECT SUM(value) as TOTAL_VALUE, sub-category FROM tbl_transaction WHERE category=:p1 GROUP BY sub-category");   
    $query2->bindParam(":p1",$q["category"],PDO::PARAM_STR); //binding parameter to second query
    $query2->execute(); //executing second query
    foreach($query2->fetchAll() as $q2) //fetching the results
    {
        echo $q2["sub-category"]." -> ".$q2["TOTAL_VALUE"]."<br/>"; //printing the results
    }

    echo "total amount of category ".$q["category"]." = ".$q["MAIN_CAT_TOTAL_VAL"];
    echo "<hr/>"; //cosmetics
}

如果您正确编辑它,这应该可以工作。如果您不确定如何使用 PDO,它可能看起来有点复杂,我建议您看一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 和 MySQL:显示某些内容的总和,按不同类别分类 的相关文章

随机推荐

  • 强制纵向模式

    好吧 由于没有人回答我之前的问题 我开始相信可能没有简单的方法可以做到这一点 但我很乐观 这是我的问题 在我的应用程序中 我使用常规 UIButton 从 ViewControllerOne 切换到 ViewControllerTwo Vi
  • 用于动态创建元素的 jQuery CSS()

    我正在使用 jQuery CSS 函数来设置一些元素的样式 element css style 这是可行的 但部分元素是在页面加载后动态创建的 这应该是 element live created function this css styl
  • Code First 一对多关系的多个外键

    我在使用 Entity Framework 6 Code First Fluent API 时遇到了一些不符合惯例的问题 一个典型的例子是我有一个名为软件的实体 我不希望数据库表被称为 Softwares 它应该被称为软件 但也有一些其他的
  • 将 ${my.property} 计算为 @Value 注释中的 SpEL 表达式

    长话短说 有没有办法解释由以下结果产生的字符串 my property 作为一个 SpEL 表达式 Value不使用转换器的注释 例如就像是 Value my property 我有一个抽象工厂 简化的 可以让我构建一些公共对象 这些对象是
  • 如何在Android即时应用程序中存储数据并在已安装的应用程序中恢复它

    据谷歌称 开发即时应用程序受到迷药 最佳实践 is 安装应用程序后保留用户状态 https developer android com topic instant apps ux best practices html keep user
  • 在 PowerShell 中通过引用传递/更新哈希表和数组

    当我了解 Perl 和 PowerShell 的不同之处时 我试图通过引用确定传递列表和更新列表之间的差异 我think我现在明白了 PowerShell 方面的 通过引用传递哈希表 调用函数时 不需要在表名前添加 ref 在函数内 表的名
  • 有什么方法可以获取模块中定义的函数列表?

    是否有任何内省的魔法可以给我一个模块中定义的函数列表 module Foo function foo foo end function bar bar end end 一些神话般的功能 例如 functions in Foo 这将返回 fo
  • 仅查看当前用户对象的列表,Django REST

    我有 2 个视图 notes 和 notes 在注释模型中models py我有所有者变量 用于存储所有者的登录信息 因为我想要有很多用户 我不想让他们看到别人的笔记 所以我创建了权限 class IsOwner permissions B
  • 删除 python 列表中的重复项但记住索引

    如何删除列表中的重复项 保留项目的原始顺序并记住列表中任何项目的第一个索引 例如 删除重复项 1 1 2 3 yields 1 2 3 但我需要记住索引 0 2 3 我正在使用Python 2 7 我会以不同的方式解决这个问题并使用Orde
  • 获取调用C#方法的实例

    我正在寻找一种算法 可以在该方法中获取调用该方法的对象 例如 public class Class1 public void Method the question object a the object that called the m
  • SVN与外部通用代码

    目前 我正在尝试使用相同的代码为多个产品设置存储库 最好的解决方案是创建共享代码的真正库并以这种方式使用它们 然而 目前这需要很长时间 这个想法是拥有一个具有以下树的单个存储库 trunk Project1 Project2 Shared
  • 在android中比较两个日期是否在同一周内

    我有两个约会 他们是从 Calendar c Calendar getInstance year c get c YEAR month c get c MONTH month date c get c DATE 其他数据分为日期 月份 2
  • 在 Curl 请求中禁用 Javascript (PHP)

    有没有办法在 PHP 的 Curl 请求中禁用 Javascript 尝试模仿浏览器请求 来自禁用 Javascript 的浏览器 这可以通过标头 用户代理 cookie 来完成吗 Thanks 有没有办法在 PHP 的 Curl 请求中禁
  • 在php中将tiff转换为jpg?

    我有一台保存 TIFF 图像的服务器 大多数客户端都可以读取和显示 TIFF 图像 因此没有问题 但是 某些客户端无法处理此格式 但可以处理 JPG 我想到使用 PHP 的 GD 库为没有 TIFF 读取能力的客户端进行服务器端转换 但我注
  • Spark:强制读取模式时 Parquet DataFrame 操作失败

    火花2 0 2 当您拥有具有不同架构的镶木地板文件并在读取期间强制使用该架构时 就会出现此问题 即使您可以打印架构并运行show 好的 您无法对缺失的列应用任何过滤逻辑 以下是两个示例架构 assuming you are running
  • 从同一类的另一个方法中检索一个方法中的 NSMutableArray [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我是 iPhone 新手 我有一个小
  • SQL查询:列出一个表中未出现在另一表中的所有项目

    我正在开发一个训练跟踪程序 但我无法弄清楚 SQL 查询 我有3张桌子 employees trainingRecords masterList employees and trainingRecords是通过相关的empID fkey t
  • 在属性中传递静态数组

    是否可以绕过以下限制 在类中创建静态只读数组 public class A public static readonly int Months new int 1 2 3 然后将其作为参数传递给属性 public class FooAttr
  • 查询对象时 linq to sql + stackoverflow 异常

    好的 当我尝试查询主键 如果实体中的主键设置为 自动生成值 时 我已经确认只有这个问题 但如果没有这个 我该如何插入 抱歉 如果这是一个 linq2sql 菜鸟 但我刚刚开始使用它 如何在关闭此选项的情况下使用 Linq to Sql 同时
  • PHP 和 MySQL:显示某些内容的总和,按不同类别分类

    你能帮我一下吗 如果您能提供答案和解释 我会更加感激 因为我想了解更多 实际上我已经感谢这个社区了 对我的学习帮助很大 但只有答案对我来说就足够了 因为我真的需要这个代码 好的 现在我将定义问题 现在 假设我有包含这些列的表格 tbl tr