[PHP] double boucle WHILE mysql_fetch_array

Résolu/Fermé
dafunkk Messages postés 2 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 25 juin 2009 - 18 juin 2009 à 14:35
dafunkk Messages postés 2 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 25 juin 2009 - 25 juin 2009 à 10:34
Bonjour,
cela fait maintenant deux jours que je suis bloqué par ce problème, peut-être quelqu'un pourra me faire avancer:

je voudrais afficher un certain nombre de checkbox dans un formulaire, et pre-cocher celles qui sont déjà attribué a un employé, j'ai donc deux boucle while, l'une dans l'autre, la première et la boucle générale qui boucle sur le mysql_fetch_array qui contient toutes les informations, la deuxième boucle while boucle sur les informations spécifique a l'employé, si elle existe chez l'employé il créé une checkbox pre-coché, sinon il l'a crée simplement sans la cocher. Pour l'instant mon code ne m'affiche que la première des information, mais c'est tout, en fait la première boucle while boucle san sprendre en compte la deuxième. Si quelqu'un voit d'ou pourrait venir le problème je lui en serrait tellement reconnaissant:
voici deux les deux solution que j'ai essayé qui m'amene exactement au même résultat:

essai 1:
function Rfonction4($var)
{
$b = mysql_query ( "SELECT posseder.numero_fonction
FROM employe, posseder, annee_active
WHERE posseder.annee = annee_active.ACTIVE
AND employe.numero_emp = posseder.numero_emp
AND employe.numero_emp ='$var'"
) or die ( "Requete pas comprise" );

$a = mysql_query("SELECT * FROM fonction") or die("Requete pas comprise");
$i=1;
$done=0;
$nb=mysql_num_rows($b);
$nb++;
echo '<table><tr>';
while ($libelle = mysql_fetch_array($a))
{
$lib = strtr($libelle[1], " ", "_");
while ($c = mysql_fetch_array($b))
{
if ($c[0] == $libelle[0])
{
if ($done!=1) {echo '<td align="right">'.$libelle[1].' <input name="'.$lib.'" type="checkbox" checked="checked"/>    </td>'; $done=1; }
}
else {
if ($done!=1) {echo '<td align="right">'.$libelle[1].' <input name="'.$lib.'" type="checkbox"/>    </td>'; $done=1;}
}
}
if($i==5)
{
echo '</tr><tr>';
$i=0;
}
$i++;
mysql_data_seek($b,0);
}
echo '</table>';
}

essai 2:
function Rfonction4($var)
{
$b = mysql_query ( "SELECT posseder.numero_fonction
FROM employe, posseder, annee_active
WHERE posseder.annee = annee_active.ACTIVE
AND employe.numero_emp = posseder.numero_emp
AND employe.numero_emp ='$var'"
) or die ( "Requete pas comprise" );

$a = mysql_query("SELECT * FROM fonction") or die("Requete pas comprise");
$i=1;
$done=0;
$nb=mysql_num_rows($b);
$c = mysql_fetch_array($b);
echo '<table><tr>';
while ($libelle = mysql_fetch_array($a))
{
$lib = strtr($libelle[1], " ", "_");
$up=0;
$numfonc=$libelle[0];
while ($up<$nb)
{
$c=mysql_data_seek($b,$up);
if ($c == $numfonc)
{
if ($done!=1) {echo '<td align="right">'.$libelle[1].' <input name="'.$lib.'" type="checkbox" checked="checked"/>    </td>'; $done=1; }
}
else {
if ($done!=1) {echo '<td align="right">'.$libelle[1].' <input name="'.$lib.'" type="checkbox"/>    </td>'; $done=1;}
}
$up++;
}
if($i==5)
{
echo '</tr><tr>';
$i=0;
}
$i++;

}
echo '</table>';
}



dafunkk
A voir également:

1 réponse

dafunkk Messages postés 2 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 25 juin 2009 1
25 juin 2009 à 10:34
j'ai résolu mon problème, en fait j'avais tout bêtement oublié de re-initialiser la variable $done à 0 dans la première boucle.
1