[英]Multiple select form element from MySQL recordset in PHP update form
我有一個名為empicons的表,該表具有兩列:EmpNo,IconId
我將EmpNo存儲為名為$ EmpNo的會話
我還有另一個稱為圖標的表,該表具有3列:Id,名稱,URL
當前,我有一個記錄集,用於選擇圖標表Id和Name並將其顯示在“多次選擇”框中,然后更新empicons表。
記錄集查詢:SELECT ID,名稱FROM gbl_icons ORDER BY ID ASC
多重選擇表單元素:
<select name="icons[]" size="10" multiple="multiple">
<?php
do {
?>
<option value="<?php echo $row_icons['id']?>"><?php echo $row_icons['name']?></option>
<?php
} while ($row_icons = mysql_fetch_assoc($icons));
$rows = mysql_num_rows($icons);
if($rows > 0) {
mysql_data_seek($icons, 0);
$row_icons = mysql_fetch_assoc($icons);
}
?>
</select>
我正在嘗試與empicons和圖標表聯接,以便“多個選擇”突出顯示基於EmpNo變量在empicons中找到的數據元素。 我無法使連接正常工作,然后更新表單元素以突出顯示這些內容。
嘗試這個。 它使用mysqli_
函數。 如果您在對兩個表進行JOIN
遇到問題,那么我們需要處理您的查詢。
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT id, name FROM gbl_icons ORDER BY id ASC";
echo '<select name="icons[]" size="10" multiple="multiple">';
if ($result = mysqli_query($link, $query)) {
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
echo '<option value="' . $row[id] . '">' . $row[name] . '</option>';
}
/* free result set */
mysqli_free_result($result);
}
echo '</select>';
/* close connection */
mysqli_close($link);
?>
您的查詢應如下所示
SELECT i.id, i.name, e.EmpNo FROM gbl_icons i
LEFT JOIN empicons e ON e.IconId = i.id AND e.EmpNo = '$EmpNo'
ORDER BY i.id ASC
因此,您將從“ gbl_icons”表中獲取所有圖標,並為每個圖標在empicons中獲得當前EmpNo的對應記錄。 如果沒有相應的記錄,則在“ EmpNo”列中將為NULL。
你的代碼應該是這樣的
<select name="icons[]" size="10" multiple="multiple">
<?php
while($row_icons = mysqli_fetch_assoc($icons)) {
?>
<option value="<?=$row_icons['id']?>" <?=!empty($row_icons['EmpNo']) ? ' selected="selected"' : ''?><?=$row_icons['name']?></option>
<?php
}
?>
</select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.