$req2 = mysql_query("select prenomProf, nomProf from professeur where codeProf = (select codeProf from enseigner where nomInstrument = '".$res0[0]."');");
Ton erreur se trouve ici
where codeProf = (...);
Remplace ce bout de code par ça :
$variable = mysql_query("SELECT codeProf FROM enseigner WHERE nomInsctrument='$res0[0]'"); $req2 = mysql_query("SELECT prenomProf, nomProf FROM professeur WHERE codeProf='$variable'");
N'oublies pas qu'il est impossible de mettre une requête SQL à l'intérieur d'une autre ! Si tu as besoin de 2 requêtes SQL, créer une variable pour la première, et pour la deuxième, au lieu de mettre la première requête, tu met simplement la variable
$req2 = mysql_query("select prenomProf, nomProf from professeur where codeProf = (select codeProf from enseigner where nomInstrument = '".$res0[0]."');");
Ton erreur se trouve ici
where codeProf = (...);
Remplace ce bout de code par ça :
$variable = mysql_query("SELECT codeProf FROM enseigner WHERE nomInsctrument='$res0[0]'"); $req2 = mysql_query("SELECT prenomProf, nomProf FROM professeur WHERE codeProf='$variable'");
N'oublies pas qu'il est impossible de mettre une requête SQL à l'intérieur d'une autre ! Si tu as besoin de 2 requêtes SQL, créer une variable pour la première, et pour la deuxième, au lieu de mettre la première requête, tu met simplement la variable
Suis pas d'accord. Il est possible de mettre une requête SELECT dans un autre SELECT. On appelle ça une sous-requête.
rga, affiche tout ton code, parce que je ne vois pas d'où viennent toutes tes variables
$req2 = mysql_query("select prenomProf, nomProf from professeur where codeProf = (select codeProf from enseigner where nomInstrument = '".$res0[0]."');");
Ton erreur se trouve ici
where codeProf = (...);
Remplace ce bout de code par ça :
$variable = mysql_query("SELECT codeProf FROM enseigner WHERE nomInsctrument='$res0[0]'"); $req2 = mysql_query("SELECT prenomProf, nomProf FROM professeur WHERE codeProf='$variable'");
N'oublies pas qu'il est impossible de mettre une requête SQL à l'intérieur d'une autre ! Si tu as besoin de 2 requêtes SQL, créer une variable pour la première, et pour la deuxième, au lieu de mettre la première requête, tu met simplement la variable
Suis pas d'accord. Il est possible de mettre une requête SELECT dans un autre SELECT. On appelle ça une sous-requête.
rga, affiche tout ton code, parce que je ne vois pas d'où viennent toutes tes variables
//requête pour sélectionner l'instrument $req0 = mysql_query("select * from instrument where nomInstrument = '".$i."';");
//si il y a l'instrument voulu dans la liste while($res0 = mysql_fetch_array($req0)) { echo"<center><h1>".$res0[0]."</h1><p>"; echo"<img src='images\\".$res0[0].".jpg' alt='".$res0[0]."' title='".$res0[0]."'><p>"; $req1 = mysql_query("select count(*) as nbProfs from enseigner where nomInstrument = '".$res0[0]."';"); $res1 = mysql_fetch_array($req1); if($res1['nbProfs']==1) { $req2 = mysql_query("select prenomProf, nomProf from professeur where codeProf = (select codeProf from enseigner where nomInstrument = '".$i."');"); $res2 = mysql_fetch_array($req2); echo"<p>".$res2[0]." ".$res2[1]." "; echo"enseigne cette discipline. <br>"; echo"Les cours commencent à ".$res0['age']." ans. <br>"; echo$res0['cours']."<p>"; } if($res1['nbProfs']>1) { for($j = 0; $j<$res1['nbProfs']; $j++) { $req2 = mysql_query("select prenomProf, nomProf from professeur where codeProf = (select codeProf from enseigner where nomInstrument = '".$res0[0]."');"); $res2 = mysql_fetch_array($req2); echo$res2[0]." ".$res2[1].","; } echo" enseignent cette discipline. <br>"; echo"Les cours commencent à ".$res0['age']." ans. <br>"; echo$res0['cours']."<p>"; } if($res1['nbProfs'] == 0) { echo"<p>Personne n'enseigne cette discipline. <br>"; } echo$res0['cours']."<p>"; }
ça fait long, mais au moins tu comprendras comment j'obtiens certaines variables.
Winter Is Coming - Explorez le forum : votre problème a déjà dû être traité ailleurs
oui, ça marche quand il n'y a qu'un prof pour un instrument, mais quand je veux afficher avec plusieurs profs, ça me marque un message dans lequel mysql refuse d'afficher car la requête retourne plusieurs résultats.
exemple :
dans la table prof :
codeProf | nomProf | prenomProf
------------------------------------
violoncelle1 | Dupont | Jacques
piano1 | Martin | Henri
piano2 | Bon | Jean
piano3 | Goutte | Corinne
------------------------------------
dans la table instrument (juste colonne 'nomInstrument') :
nomInstrument
-------------
Violoncelle
Piano
-------------
et enfin, dans la table enseigner :
codeProf | nomInstrument
-----------------------------
violoncelle1 | Violoncelle
piano1 | Piano
piano2 | Piano
piano3 | Piano
-----------------------------
pour le violoncelle, ça va marcher, mais pour le piano, il va dire trop d'occurences à renvoyer.
Winter Is Coming - Explorez le forum : votre problème a déjà dû être traité ailleurs
Si ça te renvoie plusieurs résultats, il faut faire une boucle de tes résultats. En gros, tu peux faire un mysql_num_rows de ta requête (pas trop conseillé mais bon). Si il vaut 1 tu fais pas de boucle, sinon t'en fais une. Ou bien tu peux faire une boucle malgré qu'il n'y aie qu'un résultat, mais j'aime pas trop
merci Nl, je l'ai placé dans une requete, et ensuite j'ai placé un while comme ça :
$req2 = mysql_query("SELECT nomProf, prenomProf FROM professeur WHERE codeProf = ANY(SELECT codeProf FROM enseigner WHERE nomInstrument = '".$res0[0]."');"); echo"<p>"; while($res2 = mysql_fetch_array($req2)) { echo$res2[1]." ".$res2[0].", "; } echo" enseignent cette discipline. <br>";
Winter Is Coming - Explorez le forum : votre problème a déjà dû être traité ailleurs
afficher des données avec un SELECT
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.