Problème avec boucles imbriquée

Résolu
Dimitri -  
 Dimitri -
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
Configuration: Windows XP
Firefox 3.0.5

6 réponses

  1. NookZ Messages postés 2376 Statut Membre 514
     
    $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
  2. Dimitri
     
    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
  3. 974_Vin's_974 Messages postés 554 Statut Membre 102
     
    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
  4. Dimitri
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. toto
     
    Bonjour

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

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

    Je vais continuer à coder.

    Bonne journée!
    0