2011-09-22 51 views
0

我有一個MySQL數據庫表,它包含6種類型的記錄,我需要獲取每種類型的記錄總數,然後爲每個結果創建一個變量因此,例如MySQL&PHP獲取每種類型的記錄數

重量= 3 SPV = 33 SHW = 78

等..

我寫了這個代碼

$tquery = "SELECT equipment, COUNT(id) AS num FROM contract GROUP BY equipment"; 
$tresult = mysql_query($tquery) or die(mysql_error()); 
while($trow = mysql_fetch_array($tresult)){ 
echo "There are ". $trow['COUNT(id)'] ." ". $trow['equipment'] ." items."; 
echo "<br />"; 
} 

爲每種類型需要一個變量的原因是我需要計算一個百分比值來在圖表中顯示這些數據,我已經編寫了這些代碼,只要我從表格中獲得正確的數據,它就能正常工作。

任何幫助將是真棒感謝

+0

如何創建一個變量? – xdazz

+1

閱讀有關運算符GROUP BY – sukinsan

+0

以*動態方式創建變量*不是一個好主意。如果你真的想這樣做,你應該閱讀[變量變量](http://php.net/manual/en/language.variables.variable.php),但我建議你使用數組。 – binaryLV

回答

2

首先,在那裏你引用$trow['COUNT(id)'],這是不正確;它應該回到你的名字num(在你的SQL查詢中定義),所以你實際上應該使用$trow['num']

現在來存儲您的合計金額:

創建一個數組來包含你的總數。可以稱之爲$total。把它定義爲while循環外部空數組:

$total = array(); 

然後在循環內,分配用於容納設備類型作爲鍵的$total陣列的新的元件,並且將計數結果作爲值:

$total[$trow['equipment']] = $trow['num']; 

循環結束後,您應該有一個包含所有總計的數組,您可以在其上執行計算。 PHP爲您提供了array_sum()count()函數(以及許多其他便捷函數),這些函數足以讓您開始計算平均值和百分比。

希望有所幫助。

0

嘗試類似:

$tquery = "SELECT equipment, COUNT(id) AS num FROM contract GROUP BY equipment"; 
$tresult = mysql_query($tquery) or die(mysql_error()); 
while ($tabl = mysql_fetch_array($tresult)){ 
     echo "There are " . $tabl['num'] . " of " . $tabl['equipment'] . ".<br />"; 
} 
+1

你爲什麼要去掉他的'while'循環?當然,你寫它的方式意味着代碼將循環遍歷第一條記錄中的每個字段,而不是像預期的那樣遍歷每條記錄? – Spudley

+0

嗯是的,似乎我誤解了問題中的某些東西:p我會編輯它! –