par
kweb » 27 sept. 2007, 11:23
Je me suis emballé trop vite
Je ne comprend pas la fin de cette syntaxe que tu propose
...WHERE formation.cat_id = categorie.id"
dans la BD le champs pour l'id des catégorie on le nom suivant :
Table formation : id_categorie_formation
Table catégorie : id_categorie
Pourquoi ne pas utiliser ?
...WHERE formation.id_categorie_formation = categorie.id_categorie";
Je viens de faire un test en utilisant ta proposition et j'ai un bug d'affichage mais sans aucune erreur ?
et lorsque je test ce code en utilisant ton "if" mets en mettant mon "where", le "select" m'affiche autant de fois le nom des catégories qu'il y a de formation ? et avec des sauts de lignes entre chaque ???
le je commence à être perdu
<select name="categorie" id="categorie">
<option value="">Séléctionner</option>
<?php
$select2 = " SELECT formation.*, categorie.* FROM formation, categorie WHERE categorie.id_categorie = formation.id_categorie_formation";
$selected_retour = mysql_query ($select2) or die (mysql_error());
while ($ligne = mysql_fetch_assoc($selected_retour))
{
$cat_id = $ligne['id_categorie_formation'];
$selected = "";
//echo '<option value="'.$ligne['id_categorie_formation'].";
// On vérifie que "id_categorie_formation est égal à "id_formation", si OK on affiche "selected"
if ( $ligne['id_categorie_formation'] == $ligne['id_categorie'] )
{
$selected = ' selected = "selected"';
}
echo '<option value="'.$cat_id.'"'.$selected.'>'.$ligne['txt_categorie'].'</option>';
}
?>
</select>
Un petit rajout
voici ce que le code html me mets (un selected a tous):
Code : Tout sélectionner
<select name="categorie" id="categorie">
<option value="">Séléctionner</option>
<option value="11" selected = "selected">0000</option>
<option value="22" selected = "selected">Médecine général</option>
<option value="22" selected = "selected">Médecine général</option>
</select>
Quelques heures plus tard.....
Je pense avoir enfin trouvé la solution...
<select name="categorie" id="categorie">
<option value="">Séléctionner</option>
<?php
$select2 = " SELECT formation.*, categorie.* FROM formation, categorie WHERE formation.id_formation = $modifier ";
$selected_retour = mysql_query ($select2) or die (mysql_error());
while ($ligne = mysql_fetch_assoc($selected_retour))
{
echo '<option value='.$ligne['id_categorie'].'"';
// On vérifie que "id_categorie_formation est égal à "id_formation", si OK on affiche "selected"
if ( $ligne['id_categorie_formation'] == $ligne['id_categorie'] )
{
echo ' selected="selected"';
}
echo '>'.$ligne['txt_categorie'].'</option>';
}
?>
</select>
Voici le code HTML
Code : Tout sélectionner
<select name="categorie" id="categorie">
<option value="">Séléctionner</option>
<option value=11">0000</option>
<option value=22" selected="selected">Médecine général</option>
</select>
Je vais encore me répéter, mais merci à tout le monde !