I have an artist information update form, that has all previously selected values (i.e. name,gender,style,etc.) echoed in each of the form fields.
The only problem I have is with the dynamically populated multiple select list box. The list box pulls values (style names) from a database table called style.
The style table has 2 columns - style_id & style_name. This table is used to populate the list box. (see select statement below)
In another table called artist_style I have 2 columns: artist_id and style_id. This table is used to keep a record of the styles (from style table) that were previously selected by the artist filling out the form.
my current code only populates the list box and does not highlight prevoiusly selected values as I don't quite know how to do this.
the select statement is:
$query_sql = "SELECT name FROM style ORDER BY name";
$sql = mysql_query($query_sql) or die(mysql_error());
$row_sql = mysql_fetch_assoc($sql);
$totalRows_sql = mysql_num_rows($sql);
the php for the list box is:
<td bgcolor="#CAE1E9" class="medium"><select name="genre[]" size="20" multiple>
<?php
do {
?>
<option value="<?php echo $row_sql['name'];?>"><?php
echo $row_sql['name']?></option
>
<?php
} while ($row_sql = mysql_fetch_assoc($sql));
$rows = mysql_num_rows($sql);
if($rows > 0) {
mysql_data_seek($sql, 0);
$row_sql = mysql_fetch_assoc($sql);
}
?>
</select>
I know that adding the word "selected" after the option value will highlight selections...I think I need some kind of if statement that tells it to echo "selected" when a style_id relates to the artist_id.
I am relatively new to php and mysql and was hoping someone could ammend the above code to create the list box with the selected values highlighted.
Start Free Trial