2013-10-17 84 views
-1

我知道這個問題已經在我閱讀了很多答案之前就已經介紹過了,他們都告訴我如何編寫SQL,但不知道如何打印出結果。計數值的發生並將它們打印出來

我的困境是我有一個支付方法場塔tlooks這樣

OrderID  OrderNumber  PaymentMethod 
1234   a1b2c3   PayPal 
1235   a1b2c4   Account 
1236   a1b2c5   Account 
1237   a1b2c6   PayPal 
1238   a1b2c7   Account 
1239   a1b2c8   PayPal 
1230   a1b2c9   PayPal 

我需要打印出像

PayPal付款數的東西訂單表:4

賬號支付數量:3

我曾嘗試使用這個答案

MySQL: Count occurrences of distinct values

,我有這樣的代碼

SELECT PaymentMethod,COUNT(*) as Payment FROM tablename GROUP BY PaymentMethod ORDER BY Payment DESC; 

但我怎麼打印出來?

+0

顯示用於運行該查詢的PHP代碼。它應該給你一個結果集像任何其他...不明白你遇到的困難? **僞代碼:**'while($ row = $ db-> fetch()){echo $ row ['PaymentMethod']。':'。$ row ['Payment']; }' – naththedeveloper

+0

轉到PHP.net,看看如何從您的數據庫中獲得結果.. http://www.php.net/manual/en/mysqli-result.fetch-assoc.php嘗試第一個示例.. – Svetoslav

+0

我不明白這個問題是什麼......這個查詢得到了你要找的那對(支付,金額)。我錯過了什麼? –

回答

1
$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>"; 
} 
+0

修復它使它更具動感 – okawei

+0

這不會得到所需的結果,我需要打印出每種付款方式的金額 – Kevlar

+0

我認爲配對計數和獨特的功能就像我剛纔在編輯中做的那樣可能會工作。不是100%確定 – okawei

0

您應該將數據表示法留給VIEW。

說了這麼多,這是怎麼了,你可以使用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 | 

小提琴here

+0

不要假設每個人都在一個MVC環境中工作...... –

+0

問題被標記爲PHP,所以在這裏有另一個處理級別,它可以/應該處理那部分進程。 –

+0

是嗎? PHP完全有能力從查詢中抽取數據,並將其吐出到顯示器中,而無需在MVC層上拍掌。 –

相關問題