Mysql_fetch_array en tableau
amine_marc
Messages postés
286
Statut
Membre
-
coeus Messages postés 3296 Statut Membre -
coeus Messages postés 3296 Statut Membre -
Bonjour,
je veux comparer deux entités (tableaux) dans une bdd mysql, et exactement je cherche si un élément précis (code_elv) du premier tableau s'il existe dans le deuxième tableau sachant que les tailles des deux tableaux sont différentes;
j'ai un script (ci-dessous) qui ne se fonctionne pas comme il faut:
<?php
$rq101=mysql_query("SELECT code_elv FROM absenter WHERE code_seance='$code_seance'");
$rq110=mysql_query("SELECT code_elv FROM eleve WHERE nom_annee='$annee_scl'");
while($donnees110=mysql_fetch_array($rq110))
{
while($donnees101=mysql_fetch_array($rq101)){
if($donnees101['code_elv']!=$donnees110['code_elv'])
$ab="present<br>";
else
$ab="<i>Absent</i><br>";
echo $ab;
}
}
?>
veuillez me dire où est le pb exactement?! et merci d'avance.
je veux comparer deux entités (tableaux) dans une bdd mysql, et exactement je cherche si un élément précis (code_elv) du premier tableau s'il existe dans le deuxième tableau sachant que les tailles des deux tableaux sont différentes;
j'ai un script (ci-dessous) qui ne se fonctionne pas comme il faut:
<?php
$rq101=mysql_query("SELECT code_elv FROM absenter WHERE code_seance='$code_seance'");
$rq110=mysql_query("SELECT code_elv FROM eleve WHERE nom_annee='$annee_scl'");
while($donnees110=mysql_fetch_array($rq110))
{
while($donnees101=mysql_fetch_array($rq101)){
if($donnees101['code_elv']!=$donnees110['code_elv'])
$ab="present<br>";
else
$ab="<i>Absent</i><br>";
echo $ab;
}
}
?>
veuillez me dire où est le pb exactement?! et merci d'avance.
2 réponses
-
Salut !
Pour commencer, je te conseille fortement de mettre des acolades à tes if :if($donnees101['code_elv'] != $donnees110['code_elv']) { $ab="present<br>"; } else { $ab="<i>Absent</i><br>"; } echo $ab;
As-tu essayé tes requêtes SQL séparément dans MySQL ? Peut-être que ce sont elles qui ne cherchent pas les bonnes choses...
Aussi, pour éclairer ton code, je te conseille "d'isoler" tes variables du string de tes requêtes :$rq101 = mysql_query("SELECT code_elv FROM absenter WHERE code_seance = '" . $code_seance . "';"); et $rq110 = mysql_query("SELECT code_elv FROM eleve WHERE nom_annee = '" . $annee_scl . "';");
Essaie aussi de mettre une variable de référence de connexion active à la BDD comme deuxième argument dans tes mysql_query(). Peut-être qu'au moment où tu appelles la query, la connexion est déjà éteinte pour une raison quelconque...
Dis-moi si ça t'aide ! -
c'est complètement faux ce que tu fais.
en une requete :SELECT absenter.code_elv FROM absenter INNER JOIN eleve ON absenter.code_elv = eleve.code_elv WHERE absenter.code_seance='$code_seance' AND eleve.nom_annee='$annee_scl'
çà te sort la liste des code elv présent dans tes deux tables directement, donc seulement les absents