2013-11-03 36 views
0

我會盡力解釋它在一個簡單的方法來選擇每行用戶最有效的方法:在HTML表格

-I有一個表「選舉」,每次選舉都有一個id和其他一些領域(例如,數字投票,開始日期等)。
- 我有一張表「候選人」,每個候選人都有一個「選舉候選人」字段,它是對選舉表字段的外部引用。簡而言之:您可以爲編輯該字段的特定選舉候選人。

現在,我想要做一個表,併爲每一行都有這樣的事情:

election id | election description | candidates (<select> <option> construct 

每一行都有一個<select> <option>滾動菜單,它包含了特定的候選人。現在

,第一個想法我已經是做的每一行選擇查詢:

select id from candidates where election=row_id 

但似乎低效率的對我說:因爲我創造的每一行要我做一個查詢。

有沒有更好的方法?

例子:

選舉:

id|end date | role 
2 | 01/01/2012 | major 
3 | 01/02/2012 | secretary 

用戶:

id| name |election 
1 |donald | 2 
2 |goofy | 2 
3 |mickey | 3 

現在一個簡單的HTML行:

01/01/2012 | major | **select/option choice with goofy and donald** 

01/02/2012 | secretary| **select/option choice with just mickey** 
+1

。 。如果您提供了樣本數據和您想要的結果,那麼您的問題將更加可靠。諸如「你可以選擇編輯這個領域的特定選舉」這樣的句子根本沒有意義(至少對我來說)。 –

+0

我插入了一個示例 – Phate

+0

如果您正在學習這些東西,請使用PHP框架和對象關係映射器(ORM),比如Symfony/Doctrine或Laravel/Eloquent。 –

回答

1

你多半在那裏。我要做的唯一事情就是在單個查詢中選擇所有內容,包括行標識符。

select id from candidates where election=row_id 

將與

select election, id from candidates where election in (row_id_1, row_id_2, etc); 

代替現在你可以進一步做到這一點,如:

SELECT election, array_agg(id) from candidates 
where election in (row_id_1, row_id_2, etc) 
ORDER BY election 
GROUP BY election; 

然後每次選你會得到喜歡的候選人的數組:{1, 3, 55}

如果剝離外面的括號,可以使用csv解析例程來拉列出數組的成員。