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.
A voir également:
- Mysql_fetch_array en tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique - Guide
2 réponses
Salut !
Pour commencer, je te conseille fortement de mettre des acolades à tes if :
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 :
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 !
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 :
çà te sort la liste des code elv présent dans tes deux tables directement, donc seulement les absents
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
Et quand tu testes uniquement une requête SQL avec des valeurs dummies dans MySQL, ça fait quoi exactement ?
et coeus, il n'y a pas de point de virgule dans les requete