Que tal buen día les comento mi caso estoy haciendo un formulario para registro de información (PHP) a una base de datos Mysql, lo que tengo es que dentro del formulario tengo un campo multiselect en donde si selecciono varios registro los almacena a una tabla, (1 registro por cada opción seleccionada del multiselect), ahora al momento de actualizar información quiero recuperar la información que se almaceno a la base de datos, pero el problema es que no se como volver a marcar las opciones del multiselect que fueron almacenadas en un inicio, solo me marca el primer valor y no todas las almacenadas



parte de la estructura de mi BD es la siguiente:

Tabla1: genero
atributos: idGenero (int), genero (varchar)
EN ESTA ES DONDE SE ALMACENAN los nombres de géneros de ropa



tabla2: prenda_genero
atributos: idPrenGen(int), idGenero(int)
EN LA TABLA 2 ALMACENO CADA OPCIÓN MARCADA DEL MULTISELECT

CONSULTAS CREADAS:
$row_obtenerGenero : consulta los nombres de los generos de tabla1
$row_generoAlmacenado: consulta los registros almacenados de la tabla2


EL DO --> WHILE --> LO UTILIZO PARA LISTAR TODOS LOS VALORES DISPONIBLES de la tabla1 y ponerlos en las opciones del multiselect

AHORA SI dejo mi código de esta parte, espero y me puedan ayudar porfavor







<select name="ms[]" multiple="multiple" id="ms">
<?php
do {
?>

AQUI ES DONDE INTENTO RECUPERAR LOS VALORES QUE SE ALMACENARON EN LA TABLA2 Y MARCARLOS EN EL CAMPO MULTISELECT PERO SOLO ME SELECCIONA EL PRIMER REGISTRO ALMACENADO EN LA BD (TABLA2)


<option value="<?php echo $row_obtenerGenero['idGenero']?>"
<?php if (!(strcmp($row_obtenerGenero['idGenero'], $row_generoAlmacenado['idGenero']))) {
echo 'selected="selected"';
} ?>>




<?php echo $row_obtenerGenero['genero']?></option>



<?php
} while ($row_obtenerGenero = mysql_fetch_assoc($obtenerGenero));
$rows = mysql_num_rows($obtenerGenero);
if($rows > 0) {
mysql_data_seek($obtenerGenero, 0);
$row_obtenerGenero = mysql_fetch_assoc($obtenerGenero);
}
?>
</select>