Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/03/2006, 14h40   #1
Candidat au titre de Membre du Club
 
Inscription : février 2005
Messages : 56
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 56
Points : 12
Points : 12
Par défaut Impossible afficher resultat "mysql_fetch_array()"

Salut à tous, je débute. Mon souci est que je n'arrive pas afficher les enregistrements de ma table "emprunteurs" des champs "nom" et"prenom". Je n'ai quand j'execute le code aucun message d'erreur mais les données ne s'affichent pas??. J'ai pourtant bien crée 2 enregistrements dans cette table et quand je fais la requete SQL directement à partir de la page d'administration de PhPMyAdmin (onglet "SQL") j'ai bien le résultat attendut. Si quelqu'un peut m'aider merci:
Voici uniquement la partie du code php dans ma page html:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
<?php
 
$localhost='localhost';
$user='root';
$password='rootdb';
$BDD='DevoirSerie12';
$query="SELECT nom,prenom FROM emprunteurs WHERE 1";
 
$connect_db=mysql_connect($localhost,$user,$password);
IF(!$connect_db)
{
	echo 'La connection à la base de donnée à echouée';
}
 
mysql_select_db($BDD,$connect_db);
$result =mysql_query($query);
IF (!$result)
{
	echo 'La requete à échoué'.mysql_error();
	exit;
}
 
while ($row =mysql_fetch_array($result,MYSQL_BOTH));
{
	echo 'nom,prenom: '.$row;
	echo '<br>';
 
}
mysql_free_result($result);
mysql_close($connect_db);
?>
romca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 15h03   #2
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Salut,

mysql_fecth_array() te retourne un tableau contenant le nom de tes champs sélectionnés ainsi que leur valeurs respectives, donc:


Code :
1
2
 echo 'nom,prenom: '.$row['nom'] .'  '.$row['prenom']  ;
 echo '<br>';
a+
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 15h05   #3
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Salut,

mysql_fetch_array te renvoie un tableau contenant la ligne courante de ton jeu de résultat.

pour acceder aux champs nom et prenom il te faut faire :

Code :
1
2
 
echo 'nom,prenom: '.$row['nom'] .',' .$row['prenom'];
Tu trouveras plus de détails dans la documentation : http://fr.php.net/manual/fr/function...etch-array.php

Je te conseille également de parcourir toute la section consacré à mysql et de faire un parcours rapide des différentes fonctions de facon à savoit ce qui existe

Bonne continuation
pierre
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 15h23   #4
Candidat au titre de Membre du Club
 
Inscription : février 2005
Messages : 56
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 56
Points : 12
Points : 12
je vous remercie. Mais j'ai essayé comme vous me l' avez indiqué, mais rien ne s' affiche?? J' ai cherché quand même avant de poster, j'ai essayé plusieurs solutions mais rien...
Avez vous d'autres idées d'ou cela pourrait venir..De la config? je vous met la copie entière de ma page en .php. Merci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
<html version="4.0">
<head><TITLE>4ème Partie Devoir</TITLE></head>
<body>
<h1 align=center>Requete Php vers BDD SQL</h1>
 
<br><br>
<b align=center> Donne les noms et prenoms des emprunteurs inscrits dans la TABLE emprunteur de la BDD DevoirSerie12<br>
Les noms et prenoms doivent s'afficher ici:
</br>
</b>
 
<?php
 
$localhost='localhost';
$user='root';
$password='rootdb';
$BDD='DevoirSerie12';
$query="SELECT nom,prenom FROM emprunteurs WHERE 1";
 
$connect_db=mysql_connect($localhost,$user,$password);
if(!$connect_db)
{
	echo 'La connection à la base de donnée à echouée';
}
 
mysql_select_db($BDD,$connect_db);
$result =mysql_query($query);
if (!$result)
{
	echo 'La requete à échoué'.mysql_error();
	exit;
}
 
while ($row =mysql_fetch_array($result,MYSQL_BOTH));
{
	echo 'nom,prenom: '.$row['nom'] .' '.$row['prenom']  ; 
	echo '<br>';
 
}
mysql_free_result($result);
mysql_close($connect_db);
?>
<br><hr><br>
Si vous voulez ajouter un enregistrement <a href="enreistrement.html">cliquez ici</a>
<br>Retour page d'index<a href=INDEX.html> ici</a>
</body>
</html>
romca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 15h50   #5
Membre actif
 
Inscription : mai 2004
Messages : 478
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 478
Points : 154
Points : 154
Envoyer un message via MSN à maysa
et en faisant :

Code :
1
2
3
4
5
6
7
 
while ($row =mysql_fetch_array($result));
{
   echo 'nom,prenom: '.$row[0] .' '.$row[1];
   echo '<br>';
 
}
?
maysa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 15h51   #6
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
C'est quoi MYSQL_BOTH ? Essaie de l'enlever peut-être...


PS : En français Connexion
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 15h55   #7
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Citation:
Envoyé par JWhite
C'est quoi MYSQL_BOTH ? Essaie de l'enlever peut-être...
MYSQL_BOTH est une option tout a fait valide. Bon c'est l'option par défaut donc pas trop d'interet de la fixer mais on ne s'est jamais de quoi le futur de php est fait

Pierre
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h00   #8
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 3
Points : 3
pfff n'importe quoi les gars ! pour que ca marche il faut faire comme ca :
si il y a une erreur il faut que tu regarde ce que tu selectionne dans ton select. moi je t'ai mis id par defaut mais ca peut etre un autre champ identificateur ok ?

voila !
en esperant t'avoir pu t'aider ?


Citation:
<?
$localhost='localhost';
$user='root';
$password='';
$BDD='prorencontre';
$query="SELECT * FROM emprunteur WHERE id='1'";

$connect_db=mysql_connect($localhost,$user,$password);
if(!$connect_db)
{
echo 'La connection à la base de donnée à echouée';
}

mysql_select_db($BDD,$connect_db);
$result =mysql_query($query);
if (!$result)
{
echo 'La requete à échoué'.mysql_error();
exit;
}
if(mysql_num_rows($result)>0){
$row=mysql_fetch_array($result);
{
echo $row["prenom"];
echo "<br>";
echo $row["nom"];
echo '<br>';

}}?>
milkasoprano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h05   #9
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Elle est bien ta requete mais elle ne sélectionne qu'un seul emprunteur alors que lui, je pense, voulait afficher tous les emprunteurs. Donc tu changes la problématique.

En plus, il avait bien spécifié au debut de son post que la requete était testée et valide
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h07   #10
Invité de passage
 
Inscription : mars 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 4
Points : 3
Points : 3
ok ok donc c simple ya pa de soucis tu rajoutes ton while et au lieu de definir une id tu selectionne par rapport a une restriction specifique. genre, celui par rapport a un membre

-- EDIT --

Ok ok je vois maintenant ce que tu veux faire,
Ben c'est simple tu remplace ce que jai mis en haut, sur les 4/5 derniere ligne mais au lieu de mettre le if tu met while et tu rajoute des parenthese.

ensuite dans ton select tu enleve le where.
et normalement ca marchera...
milkasoprano est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h12   #11
Candidat au titre de Membre du Club
 
Inscription : février 2005
Messages : 56
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 56
Points : 12
Points : 12
j'ai mis
Code :
echo 'nom,prenom: '.$row[0] .' '.$row[1];
mais idem.

J' ai mis nom au ieu de id,
Code :
$query="SELECT nom,prenom FROM emprunteurs WHERE nom='1'";
. J'ai mis la clef primaire sur le champ nom dans la table "emprunteurs" mais ça change rien. Par contre j'ai pas mis d'index dans la table; Ca peut avoir une incidence.
Je comprend plus rien.!!..Si vous pouvez encore m'aider, merci.
romca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h15   #12
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Milkasoprano je suis pas sûr que tu captes tout enfin bref.

Je pense avoir trouvé
Code :
1
2
3
4
5
6
while ($row =mysql_fetch_array($result,MYSQL_BOTH));
{ 
   echo 'nom,prenom: '.$row['nom'] .' '.$row['prenom']  ; 
   echo '<br>'; 
 
}
Je pense que c'est simplement le point-virgule juste après le while qui pose problème, du coup le while n'est pas fait correctement
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h23   #13
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689

c'était tellement bête que personne ne l'avait vu !
(moi non plus d'ailleurs, pouratant j'avais lu ce post)
comme quoi c'est toujours les erreurs d'étourderie les plus betes qui font le plus ch***
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h24   #14
Candidat au titre de Membre du Club
 
Inscription : février 2005
Messages : 56
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 56
Points : 12
Points : 12
Par défaut [resolu]

Eh oui c'est bien le ";" apres le while qui posait pbm!!!!! Je suis dégouté , j'ai passé au moins 2 heures dessus!!! Le pire c'est que je connais la syntaxe du while ( C++...) Ca m'a fait une bonne révision...
Merci encore à tous et excusez moi pour vous avoir fait perdre du temps pour ça!

Au fait quand je disais Par contre j'ai pas mis d'index dans la table; Ca peut avoir une incidence. C'était une question...Si quelqu'un pourrait répondre mais je pense que non 9a n'a pas dincidence j'ai juste pour aller plus vite dans la rechercehe c'est ça?
romca est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h25   #15
Membre éprouvé
 
Inscription : février 2004
Messages : 456
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 456
Points : 428
Points : 428
Citation:
Envoyé par Hervé Saladin

c'était tellement bête que personne ne l'avait vu !
(moi non plus d'ailleurs, pouratant j'avais lu ce post)
comme quoi c'est toujours les erreurs d'étourderie les plus betes qui font le plus ch***
+1

Jl'ai relu qu moins 50000 fois sans voir ce point-virgule.

En tout cas quel oeil JWhite
billoum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h26   #16
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Je l'avais pas vu non plus celle-là

Bien joué JWhite
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 16h31   #17
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Merci merci lol.
Moi non plus j'avais pas vu tout de suite, c'est en relisant que j'ai vu. C'est le genre d'erreurs qui peuvent très vite prendre la tête et je suis content de t'avoir aidé
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h16.


 
 
 
 
Partenaires

Hébergement Web