[PHP] double boucle WHILE mysql_fetch_array [Résolu/Fermé]

Signaler
Messages postés
2
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
25 juin 2009
-
Messages postés
2
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
25 juin 2009
-
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

1 réponse

Messages postés
2
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
25 juin 2009
1
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci