Mysql_fetch_array()
Résolu/Fermé
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
-
12 janv. 2009 à 14:06
toto - 13 janv. 2009 à 14:20
toto - 13 janv. 2009 à 14:20
6 réponses
grrrr...
Peux-tu faire un echo mysql_num_rows($result) juste avant ton while($pro=mysql_fetch_array($result)) ?
Peux-tu faire un echo mysql_num_rows($result) juste avant ton while($pro=mysql_fetch_array($result)) ?
Bonjour
Tous tes 'echo' sont à l'extérieur de la boucle, ils ne sont donc exécutés qu'une seule fois.
Il faut refermer l'accolade du while qu'après le echo "Description
Tous tes 'echo' sont à l'extérieur de la boucle, ils ne sont donc exécutés qu'une seule fois.
Il faut refermer l'accolade du while qu'après le echo "Description
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
12 janv. 2009 à 14:42
12 janv. 2009 à 14:42
Je viens de changer et de faire comme tu m'as dit mais je n'ai toujours qu'un seul enregistrement qui s'affiche.
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
>
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
12 janv. 2009 à 14:53
12 janv. 2009 à 14:53
Je te remets le code que j'ai fait au cas où j'aurai mal placé ma parenthèse :
while($offre=mysql_fetch_array($resultat)) { $titre=$offre['titre']; $region=$offre['region']; $secteur=$offre['secteur']; $contrat=$offre['contrat']; $description=$offre['description']; $idProfessionnel=$offre['idProfessionnel']; //+++++++++++++++++++++++++++++++++++REQUETE POUR LES INFOS DE L'ENTREPRISE+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ $sql2="SELECT * FROM PROFESSIONNEL WHERE idProfessionnel='".$idProfessionnel."'"; $result=mysql_query($sql2) or die ("Erreur SELECT 2 : ".mysql_error()); while($pro=mysql_fetch_array($result)) { $nom=$pro['nom']; $ville=$pro['ville']; $regionpro=$pro['region']; $secteurpro=$pro['secteur']; $descriptionpro=$pro['description']; $mail=$pro['mail']; echo "<h4>L'offre de ".$nom. " : </h4>"; echo "Titre : ".$titre."<br />"; echo "Région : ".$region."<br />"; echo "Secteur : ".$secteur."<br />"; echo "Contrat : ".$contrat."<br />"; echo "Description : ".$description."<br />"; echo "<h4>L'entreprise : </h4>"; echo "Nom : ".$nom."<br />"; echo "Ville : ".$ville."<br />"; echo "Région : ".$regionpro."<br />"; echo "Secteur : ".$secteurpro."<br />"; echo "Description : ".$descriptionpro."<br />"; ?> <a href="mailto:<?php echo $mail; ?>><?php echo $mail; ?> </a> <?php } }
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
>
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
12 janv. 2009 à 15:02
12 janv. 2009 à 15:02
En fait le problème se pose quand j'ai 2 enregistrements à la suite de la même entreprise.
Quand tu as deux enregistrements à la suite de la même entreprise, ont-ils bien le même idProfessionnel ?
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
12 janv. 2009 à 15:33
12 janv. 2009 à 15:33
les mêmes idProfessionnel désolé
nabilos31
Messages postés
35
Date d'inscription
samedi 7 juin 2008
Statut
Membre
Dernière intervention
4 mai 2013
2
12 janv. 2009 à 15:58
12 janv. 2009 à 15:58
Salut, pour afficher plusieurs entrées tu dois mettre ton echo dans la boucle...
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
13 janv. 2009 à 09:52
13 janv. 2009 à 09:52
Je comprends pas, mon echo est déjà dans la boucle.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je crois que nabilos a lu un peu trop rapidement..
Pour le mysql_num_rows, je ne pale pas de celui que tu avais déjà au début de ton premier message, mais bien de vérifier la deuxième requête : echo mysql_num_rows($result) juste avant ton while($pro=mysql_fetch_array($result)) ?
Si c'est bien le cas, alors le script de ton message 3 doit t'afficher 4 fois la série des infos sur l'offre et l'entreprise.
D'ailleurs, il me semblerait plus logique d'afficher les infos de l'offre dans ta boucle externe et celles de l'entreprise dans ta boucle interne, sinon, tu répètes les infos de la même offre à chaque entreprise.
Pour le mysql_num_rows, je ne pale pas de celui que tu avais déjà au début de ton premier message, mais bien de vérifier la deuxième requête : echo mysql_num_rows($result) juste avant ton while($pro=mysql_fetch_array($result)) ?
Si c'est bien le cas, alors le script de ton message 3 doit t'afficher 4 fois la série des infos sur l'offre et l'entreprise.
D'ailleurs, il me semblerait plus logique d'afficher les infos de l'offre dans ta boucle externe et celles de l'entreprise dans ta boucle interne, sinon, tu répètes les infos de la même offre à chaque entreprise.
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
13 janv. 2009 à 10:36
13 janv. 2009 à 10:36
Quand je place le mysql_num_rows où tu me dis, il me renvoie bien 1, ce qui est logique vu qu'il n'y a qu'un enregistrement pour un idProfessionnel précis Je ne vois vraiment pas où ca bloque, voilà encore une fois mon code :
$resultat=mysql_query($sql) or die ("Erreur SELECT : ".mysql_error()); echo mysql_num_rows($resultat); //affiche 5 while($offre=mysql_fetch_array($resultat)) { $titre=$offre['titre']; $region=$offre['region']; $secteur=$offre['secteur']; $contrat=$offre['contrat']; $description=$offre['description']; $idProfessionnel=$offre['idProfessionnel']; //+++++++++++++++++++++++++++++++++++REQUETE POUR LES INFOS DE L'ENTREPRISE++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ $sql2="SELECT * FROM PROFESSIONNEL WHERE idProfessionnel='".$idProfessionnel."'"; $result=mysql_query($sql2) or die ("Erreur SELECT 2 : ".mysql_error()); echo '*'; echo mysql_num_rows($result); //affiche 1 echo '*'; while($pro=mysql_fetch_array($result)) { $nom=$pro['nom']; $ville=$pro['ville']; $regionpro=$pro['region']; $secteurpro=$pro['secteur']; $descriptionpro=$pro['description']; $mail=$pro['mail']; echo "<h4>L'offre de ".$nom. " : </h4>"; echo "Titre : ".$titre."<br />"; echo "Région : ".$region."<br />"; echo "Secteur : ".$secteur."<br />"; echo "Contrat : ".$contrat."<br />"; echo "Description : ".$description."<br />"; echo "<h4>L'entreprise : </h4>"; echo "Nom : ".$nom."<br />"; echo "Ville : ".$ville."<br />"; echo "Région : ".$regionpro."<br />"; echo "Secteur : ".$secteurpro."<br />"; echo "Description : ".$descriptionpro."<br />"; ?> <a href="mailto:<?php echo $mail; ?>><?php echo $mail; ?> </a> <?php } }
C'est bête à pleurer...
Depuis ton message 4, j'étais persuadé qu'il pouvait y avoir plusieurs réponses à ta requête sql2 : En fait le problème se pose quand j'ai 2 enregistrements à la suite de la même entreprise.
D'ailleurs, un while sert à faire une boucle, pourquoi boucler si tu sais que tu as une seule réponse ? Un if pour vérifier qu'il y en a une, oui mais pas un while.
De toutes manières, le problème n'a aucun rapport avec tout ceci. Et si tu avais lu le source créé par ta page, tu aurais bien vu le problème:
Depuis ton message 4, j'étais persuadé qu'il pouvait y avoir plusieurs réponses à ta requête sql2 : En fait le problème se pose quand j'ai 2 enregistrements à la suite de la même entreprise.
D'ailleurs, un while sert à faire une boucle, pourquoi boucler si tu sais que tu as une seule réponse ? Un if pour vérifier qu'il y en a une, oui mais pas un while.
De toutes manières, le problème n'a aucun rapport avec tout ceci. Et si tu avais lu le source créé par ta page, tu aurais bien vu le problème:
<a href="mailto:<?php echo $mail; ?>><?php echo $mail; ?>où se referme le " ?
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
80
13 janv. 2009 à 13:51
13 janv. 2009 à 13:51
Ah en effet, vraiment bête à en pleurer ben merci beuacoup en tout cas, ça marche maintenant, tu me sauves souvent.
Merci :)
Merci :)
toto
>
didy_gwatinik
Messages postés
352
Date d'inscription
samedi 17 novembre 2007
Statut
Membre
Dernière intervention
30 mars 2010
13 janv. 2009 à 14:20
13 janv. 2009 à 14:20
de rien :-)
13 janv. 2009 à 09:52