我正在尋找一種更有效的加載mutliselect列表的方法,該理論可應用於許多情況。我這樣做的方式導致許多查詢,我想知道是否有辦法在兩個分貝查詢中做到這一點。使用PHP的MultiSelect加載效率
DB Table : users: fields= (userID, name)
data: 1, Dan
data: 2, Cory
data: 3, Matt
DB Table : users_selected: fields(userSelectedID, userID)
data: 1,1
現在用PHP,我通常做到以下幾點:
<?php
$q = 'SELECT userID,name FROM users';
$r = mysql_query($r);
echo '<select id="assignToID" name="assignToID[]" multiple="assignToID">';
while($e = mysql_fetch_array($r){
//this is where you have to query the db each time... theres got to be a better way
$q2 = 'SELECT userSelectedID FROM user_selected WHERE userID = "'.$e['userID'].'" ';
$r2 = mysql_query($q2);
$nr = mysql_num_rows($r2);
if($nr>0){
$sel = ' selected="selected" ';
}
else{
$sel = '';
}
echo '<option '.$sel.' value="'.$e['userID'].'"'>'.$e['name'].'</option>';
}
echo '</select>'
?>
所以上面我們要查詢我們的循環,我們有在數據庫的每個用戶。有沒有辦法使用PHP array_merge或者只是爲所有的用戶做一個查詢然後追加他們被選中的天氣......只是試圖找到一個更優雅和高效的解決方案。
很多謝謝
U檢查我的答案了嗎? – 2012-07-06 21:55:41