Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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_Count_Distinct - Fatal编程技术网

Php 计算值的发生次数并打印出来

Php 计算值的发生次数并打印出来,php,mysql,count,distinct,Php,Mysql,Count,Distinct,我知道在我读了很多答案之前,这个问题已经被讨论过了,它们都告诉我如何编写SQL,而不是如何打印结果 我的困境是,我有一个订单表,其中有一个付款方式字段,看起来像这样 OrderID OrderNumber PaymentMethod 1234 a1b2c3 PayPal 1235 a1b2c4 Account 1236 a1b2c5 Account 1237

我知道在我读了很多答案之前,这个问题已经被讨论过了,它们都告诉我如何编写SQL,而不是如何打印结果

我的困境是,我有一个订单表,其中有一个付款方式字段,看起来像这样

OrderID     OrderNumber     PaymentMethod
 1234         a1b2c3          PayPal
 1235         a1b2c4          Account
 1236         a1b2c5          Account
 1237         a1b2c6          PayPal
 1238         a1b2c7          Account
 1239         a1b2c8          PayPal
 1230         a1b2c9          PayPal
我需要打印出像这样的东西

贝宝支付数量:4

账户付款数量:3

我试着用这个答案

我有这个密码

SELECT PaymentMethod,COUNT(*) as Payment FROM tablename GROUP BY PaymentMethod ORDER BY Payment DESC;
但是如何打印出来呢?

$returned=mysqli_query(“选择PaymentMethod,按PaymentMethod按付款说明顺序从tablename组中将(不同的PaymentMethod)计数为付款”);
$returned = mysqli_query("SELECT PaymentMethod,COUNT(distinct PaymentMethod) as Payment FROM tablename GROUP BY PaymentMethod ORDER BY Payment DESC;");
while($data = mysqli_fetch_assoc($returned)){
    echo "Number of " . $data['PaymentMethod'] . ": " . $data[0] . "<br>";
}
而($data=mysqli\u fetch\u assoc($returned)){ 回显“..$data['PaymentMethod']”的编号:“$data[0]”“
”; }
您应该将数据表示留给视图。

话虽如此,这就是如何使用纯MySQL提取以这种方式格式化的数据:

SELECT concat('Number of ', paymentmethod ,' payments: ', count(*)) RESULT FROM t
GROUP BY paymentmethod
ORDER BY paymentmethod DESC
这导致:

|                        RESULT |
|-------------------------------|
|  Number of PayPal payments: 4 |
| Number of Account payments: 3 |

Fiddle.

显示您已经拥有的用于运行该查询的PHP代码。它应该给你一个结果集像任何其他。。。你不明白你有什么困难吗?伪代码:
while($row=$db->fetch()){echo$row['PaymentMethod'].:'.$row['PaymentMethod'];}
转到PHP.net,看看如何从数据库中获取结果。。试试第一个例子,我真的不明白问题是什么。。。该查询获取您要查找的配对(付款、金额)。我遗漏了什么?修复了它以使其更具动态性这并没有得到期望的结果,我需要打印出每种付款方式的金额我认为将计数和独特功能配对(就像我刚才在编辑中所做的那样)可能会起作用。不是100%确定thoughCount distinct+group?它不起作用。我知道如何正常打印数据。但这不是一个正常的选择和回应…至少在我看来不是这样。不要假设每个人都在MVC环境中工作…问题被标记为PHP,所以这里有另一个处理级别,可以/应该处理这部分过程。那么?PHP完全能够从查询中提取数据并将其输出到显示器上,而不必在MVC层上进行处理。是的,我需要使用PHP打印出来……但它不像普通的选择、循环和复制echo@MarcB当然当把它吐到显示器上时,这是格式化它的最佳时机。。。提取的时候没有。你提到的那个显示器就是视图,不是吗?到目前为止,我从未提到过MVC。只有你做到了:)