簡體   English   中英

PHP更新表單中來自MySQL記錄集的多個選擇表單元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM