Option selected dans une liste à choix multiple
Bonjour tout le monde,
Je vous expose ici mon code et le problème que j'ai avec en espérant qu'un œil neuf verra l'erreur.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
<?php
//ici, on récupére les types qui sont associer à l'ouvrage que l'on identifie //avec $_GET['codeLivre']
//par exemple : exercice, manuel...etc
$sql = 'select `libelleTypeOuvrage`,`numType`,`numTypeOuvrage`,`codeRO`'
. ' from `Appartient_TO`,`TypeOuvrage`'
. ' where '
.' `Appartient_TO`.`numType`=`TypeOuvrage`.`numTypeOuvrage` and'
. ' `Appartient_TO`.`codeRO` =\''
. mysql_real_escape_string($_GET['codeLivre'])
. '\';';
$resultat2=mysql_query($sql);
?>
<!--Liste à choix multiple permettant l'association d'un ouvrage avec un ou plusieurs types -->
<h5>Type d'ouvrage :</h5>
<n>Maintenez enfoncé la touche "Ctrl" pour effectuer une selection mutiple.</n>
<?php
//Requête qui alimente la liste déroulante qui propose les differents types //d'ouvrages
$sqlT = 'select `libelleTypeOuvrage` from `TypeOuvrage`;'
?>
<select name="type_ouvrage[]" id="id" multiple size="4">
<?php
$resultat=mysql_query($sqlT);
while ($ligne=mysql_fetch_array($resultat))
{
?>
<option value="<?php echo ''.$ligne["libelleTypeOuvrage"].'';?>"<?php while ($ligne2=mysql_fetch_array($resultat2)){if($ligne2['libelleTypeOuvrage']==$ligne['libelleTypeOuvrage']){echo "selected";}}?>><?php echo ''.$ligne["libelleTypeOuvrage"].'';?></option>
<?php }
?>
</select> |
En fait, tout ça dans le cadre de modification d'une entrée dans la BD.
Je souhaite de sélectionner les types d'ouvrage tels qu'ils sont déjà enregistrés dans ma base.
Alors, la sortie de ma 1ère requête est une liste de 2 types d'ouvrage, à l'exécution, seulement un de mes types est sélectionné dans ma liste de choix multiple.
Les sorties de toutes les requêtes sont correctes.
Le problème vient selon moi du fait que quand on repasse dans la 2ème boucle "while" on efface l'ancienne sélection et on effectue une nouvelle ou je fais n'imp' dans mon code tout simplement.
Merci d'avance.
Cordialement,
Nooby.
edit: J'espere que c'est plus lisible :)