2012-10-11 38 views
0

儘管我一直在處理一些東西,從一個地方複製和粘貼,但我並不是PHP專家,我想問一些我找不到的東西,而我對如何實施它沒有絲毫的想法。使用PHP從動態表計數

例如,在像這樣的表:

+------+-----+ 
    |NAME |BIRTH| 
    +------+-----+ 
    |John |1980 | 
    |Carl |1982 | 
    |Alice |1990 | 
    |June |1994 | 
    |Rob |1998 | 
    |Alice |1998 | 
    |John |2000 | 
    |Alice |2001 | 
    |Etc. |  | 
    +------+-----+ 

我做不同的查詢,像這樣的下面(和我能跟上年內的任何組合做查詢):

  1. Select * from table where BIRTH between 1980 and 1990
  2. Select * from table where BIRTH between 1980 and 2001
  3. Select * from table where BIRTH between 1990 and 2001

所以我會得到3頁不同的表,並從這些表我需要統計不同的內容, 例如,從與QUERY1獲得的表,我需要獲得:

John = 1 
    Carl = 1 
    Alice = 1 

從表QUERY2:

John = 2 
    Carl = 1 
    Alice = 3 
    June = 1 
    Rob =1 

從QUERY3表:

Alice = 3 
    John = 1 
    Carl = 1 
    June = 1 
    Rob =1 

和記憶大表有700條記錄,所以它可能出現的任何新的名字,我需要打印出來的結果以同樣的方式:

Alice = 3 
    John = 1 
    NewName = 1 
    June = 1 
    Rob =1 

我的最終目標是做百分比相對於獲得的表,而不是寄存器總數。

回答

3

你應該這樣做在SQL,而不是在PHP:

select NAME, count(1) 
from TABLE 
where condition 
group by NAME 

這將產生你想要的精確視圖。作爲第一列的名稱,第二列的計數。

+0

卓越,它解決了,關於輸出的一個問題,我怎麼能在桌子上,而不是「COUNT(1)」,我可以,例如「數量」
,並感謝您的幫助 –

+0

你可以使用這樣的列別名:'select NAME,count(1)as Quantity' –

+0

輝煌,你是最好的 –