Page 1 sur 1

Boucle while et requete

Posté : 04 juil. 2005, 11:33
par airbem
Bonjour

Peut on faire une une requet a l'interieur d'une boucle while ?

Voila j'affiche le resultat d'une requete comme ceci ,

Code : Tout sélectionner

while ($tablo = mysql_fetch_object($result)) { print "<TR>"; print "<TD nowrap class=\"style4\" >$tablo->nom &nbsp</b></TD>\n"; print "<TD nowrap class=\"style4\" >$tablo->prenom &nbsp</b> </TD>\n"; print "<TD nowrap class=\"style4\" >$tablo->code &nbsp</b></TD>\n"; print "<TD nowrap class=\"style4\" >$tablo->ville &nbsp</b></TD>\n"; print '<td nowrap width="12">'; $req='SELECT id FROM fiche WHERE id='.$tablo['id']; $res = mysql_query($req) or die(mysql_error()); $fiche_ou_pas = mysql_num_rows($res); if($fiche_ou_pas < 1) { // Cas ou il n'a Pas de fiche P echo "P"; } else { //Cas ou il a une fiche donc il a été Vu V echo "V"; } print '</td>\n'; print "</TR>";
Des que j'ai rajouter ceci

Code : Tout sélectionner

print '<td nowrap width="12">'; $req='SELECT id FROM fiche WHERE id='.$tablo['id']; $res = mysql_query($req) or die(mysql_error()); $fiche_ou_pas = mysql_num_rows($res); if($fiche_ou_pas < 1) { // Cas ou il n'a Pas de fiche P echo "P"; } else { //Cas ou il a une fiche donc il a été Vu V echo "V"; } print '</td>\n';

a l'interieur de ma boucle while , ça ne marche plus. :?

Quelqu'un peut'il m'aider SVP
:(

Posté : 04 juil. 2005, 11:38
par ouckileou
t'es sûr que ça vient pas de ta requête déjà ?

il manque des quotes autour de $tablo['id']
$req='SELECT id FROM fiche WHERE id='.$tablo['id']; 
sinon ça provoque quoi : page blanche ? erreur SQL ? erreur PHP ?

Posté : 04 juil. 2005, 12:06
par airbem
Bonjour

Sa m'affiche ceci dans une cellule du tableau.

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Et justement c'est la (dans cette cellule)que doit etre le resultat de la requet :

Code : Tout sélectionner

$req='SELECT id FROM fiche WHERE id='.$tablo['id']; $res = mysql_query($req) or die(mysql_error()); $fiche_ou_pas = mysql_num_rows($res); if($fiche_ou_pas < 1) { // Cas ou il n'a Pas de fiche P echo "P"; } else { //Cas ou il a une fiche donc il a été Vu V echo "V"; }

Posté : 04 juil. 2005, 12:08
par ouckileou
ce message, c'est une erreur MySQL

"Vous avez une erreur de syntaxe"

donc affiche le code de ta requête et regarde ce que ça donne

cela vient peut-être de ce que je t'ai dit

Posté : 04 juil. 2005, 14:27
par Tho
Alors ton erreur c'est que $tablo['id'] n'est pas un entier (soit vide, soit n'importe quoi).

ce qui te crée une requête invalide du genre

SELECT id FROM fiche WHERE id=

ou encore

SELECT id FROM fiche WHERE id=youpi

Posté : 04 juil. 2005, 15:27
par Guakamol
$tablo['id'] n'existe pas vu que c'est un objet continue avec ta syntaxe $tablo->id

Posté : 04 juil. 2005, 15:52
par airbem
J'ai changer ma requet par ;

Code : Tout sélectionner

$num = $tablo->id; //echo'$tablo->id'; $req ="SELECT id FROM fiche WHERE id = '$num'"; $res = mysql_query($req) or die(mysql_error()); //echo'$req '; $fiche_ou_pas = mysql_num_rows($res); if($fiche_ou_pas < 1) { // Cas ou il n'a Pas de fiche P echo "P"; } else { //Cas ou il a une fiche donc il a été Vu V echo "V"; } print '</td>';
et ça marche maintenant.

UN GRANG GRAND GRAND MERCI à tous :wink:

Posté : 04 juil. 2005, 15:54
par mere-teresa