0

EmpNo、IconIdの2つの列を持つempiconsというテーブルがあります

EmpNoを$EmpNoというセッションとして保存しています

Id、Name、URLの3つの列を持つiconsという別のテーブルがあります

現在、アイコンテーブルのIDと名前を選択し、それを複数選択ボックスに表示して、empiconsテーブルを更新するレコードセットがあります。

レコードセットクエリ:SELECT id、name 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>

複数選択がEmpNo変数に基づいてエンピコンで見つかったデータ要素を強調表示するように、エンピコンとアイコンテーブルで結合しようとしています。結合を正しく機能させてから、フォーム要素を更新してこれらを強調表示できません。

4

2 に答える 2

2

これを試して。関数を使用しmysqli_ます。JOIN2つのテーブルの作成で問題が発生した場合は、クエリを処理する必要があります。

<?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);
?>
于 2013-03-20T16:04:23.057 に答える
1

クエリは次のようになります

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」テーブルからすべてのアイコンを取得し、それぞれについて、現在のEmpNoのempiconsの対応するレコードを取得します。対応するレコードがない場合は、「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>
于 2013-03-20T16:18:42.840 に答える