Problème avec boucles imbriquée

Résolu/Fermé
Dimitri - 12 févr. 2009 à 12:22
 Dimitri - 12 févr. 2009 à 13:41
Bonjour,

J'ai un petit problème avec des boucles imbriquée :

<?php
$reponse = mysql_query('SELECT * FROM departement') or die (mysql_error());
while ($donnees = mysql_fetch_array($reponse)) {

echo $donnees['nom'];
$reponse1 = mysql_query('SELECT * FROM fonction') or die (mysql_error());
while ($donnees1 = mysql_fetch_array($reponse1)) {
?>

<label for="fonction_'.$donnees1['id'].'">
<?php
echo $donnees1['nom'];
?>
</label>
<?php
echo '<input type="checkbox" name="fonction_'.$donnees1['id'].'"';
}

}
?>


Donc en fait je voudrais afficher les fonctions qui sont liées ou départements.
Le problème c'est que je reçois en affichage :

departement1 fonction1 fonction 2 ... fonction 1 fonction 2 ... fonction 1 fonction 2...

alors que je devrait avoir :
departement1 fonction1 fonction 2 ... departement2 fonction 1 fonction 2 ... departement3 fonction 1 fonction 2...


Par contre, quand je mets ce code ci :


<?php
$reponse = mysql_query('SELECT * FROM departement') or die (mysql_error());
while ($donnees = mysql_fetch_array($reponse)) {

echo $donnees['nom'];
$reponse1 = mysql_query('SELECT * FROM fonction') or die (mysql_error());
while ($donnees1 = mysql_fetch_array($reponse1)) {
echo $donnees1['nom'];
}

}
?>


j'obtiens bien :

departement1 fonction1 fonction 2 ... departement2 fonction 1 fonction 2 ... departement3 fonction 1 fonction 2...

Mais sans le formulaire dont j'ai besoin.

Est-ce que quelqu'un aurait une idée?

Merci d'avance,

Dimitri

6 réponses

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
12 févr. 2009 à 12:28
$reponse1 = mysql_query('SELECT * FROM fonction') or die (mysql_error());

devrait être, je pense
$reponse1 = mysql_query('SELECT * FROM fonction where departement ='. $donnees1['nom'].') or die (mysql_error());

enfin en considérant qu'il y a bien un lien entre les deux tables
0
En fait, je n'ai pas un liens direct entre les 2 tables... C'est que j'ai une relation de n à n donc j'ai une table
link_departement qui reprend : departement_id et fonction_id
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
12 févr. 2009 à 12:41
Essai ca :


<?php
$reponse = mysql_query('SELECT * FROM departement') or die (mysql_error());
$reponse1 = mysql_query('SELECT * FROM fonction') or die (mysql_error());
?>

<table border="0">
<tr>
<th>departement</th>
<th>fonction</th>
</tr>
<tr>
<td>
<?php

while ($donnees = mysql_fetch_array($reponse))
{

echo $donnees['nom'];
?>
</td>
<td>
<?php

while ($donnees1 = mysql_fetch_array($reponse1))
{



echo $donnees1['nom'];
?>
</td>
<?php
echo '<input type="checkbox" name="fonction_'.$donnees1['id'].'"';
}

}
?>


0
Ce que tu me donne comme code me paraît logique...

Mais j'ai en retour :

un tableau avec :

departement | fonction
departement 1 | departement 2 | departement 3
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour

Ton code initial était presque bon. Il te manquait juste le > de la balise <input type="checkbox"
0
Merci pour votre aide!

C'était bien effectivement juste le > de la balise checkbox...

Je vais continuer à coder.

Bonne journée!
0