Boucle while et requete

Eléphanteau du PHP | 29 Messages

04 juil. 2005, 11:33

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
:(

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 11:38

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 ?

Eléphanteau du PHP | 29 Messages

04 juil. 2005, 12:06

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"; }

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

04 juil. 2005, 12:08

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

Tho
Invité n'ayant pas de compte PHPfrance

04 juil. 2005, 14:27

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

Eléphant du PHP | 128 Messages

04 juil. 2005, 15:27

$tablo['id'] n'existe pas vu que c'est un objet continue avec ta syntaxe $tablo->id
C'est pas moi qui ai volé l'orange !

Eléphanteau du PHP | 29 Messages

04 juil. 2005, 15:52

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:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

04 juil. 2005, 15:54

Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.