2つのMysqlテーブル(tbl_subjectsとtbl_courses)があります。
tbl_subjects
id | subject_name |
1 | english |
2 | maths |
3 | Physics |
tbl_courses
id | my_subjects |
1 | 1,3 |
複数選択リストのhtmlおよびphpコード
$sql_subjects = mysql_fetch_array(mysql_query("SELECT * FROM tbl_subjects WHERE id IN ( 1,3 )"));
<select name="subjects[]" multiple="multiple" size="7">
<?php
$sql = mysql_query("SELECT * FROM tbl_subjects");
while($row = mysql_fetch_array($sql ))
{
$id = $row['id'];
$subject_name = $row['subject_name '];
?>
<option value="<?php echo $id; ?>" <?php if($sql_subjects['id'] == $id) echo 'selected="selected"'; ?>> <?php echo $subject_name; ?></option>
<?php } ?>
</select>
上記のコードでわかるように、事前に選択された値が2つあるはずですが、最初の値の結果しか得られませんでした。画像でも確認できます。