2013-01-20 17 views
0

我創建了一個投票站點,用戶打算註冊並投票。我只爲用戶的信息和提交創建了一個表。下面是表的列和行:在非計劃的mysql表中創建報告

用戶:

列:用戶名密碼agree_1 reason_1 agree_2 reason_2

行:保羅測試是NULL沒有,因爲我不喜歡它

我決定用這種方式製作這張表格,因爲問題在(表格)中,並且每個都超過100行。如果你同意的話,從形式上再次說明,你會說沒有理由(這就是null的原因),但是如果你不同意,你將不得不聲明你的理由。我的問題是:

我該如何爲這樣的計劃外數據庫準備標準報告? 我如何計算同意的人數和說不的人數? 對於那些說不,我如何提取他們的理由?

我想要使用php提取並顯示此報告。我正在使用mysql和php。

+0

所以agree_1和agree_2是回答不同的問題? –

+0

是的,你猜對了。他們是不同問題的答案。 –

回答

0

除非我誤解你,我想你最好記住與normalisation重組你的表:

users 
- id 
- email 
- name 

polls 
- id 
- name 

questions 
- id 
- poll_id 
- question 
- order 

answers 
- id 
- question_id 
- user_id 
- answer 

然後,希望你的要求,你需要將變得更加清晰的查詢。例如,要查詢的是誰給了每一個獨特的回答問題#34的人數:

SELECT 
    answer, 
    count(*) AS 'people' 
FROM answers 
WHERE question_id = 34 
GROUP BY answer 

將返回類似:

answer people 
yes  15 
no  17 
null  3 
+0

感謝您的回覆,請關係很混亂。你能向我展示那些是主鍵的列,還有那些是輔助鍵的列。請更清楚。謝謝 –

+0

任何叫做id的都是PK,任何_id都鏈接到PK –