Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 10/01/2012, 18h00   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
Par défaut select dans un while

Bonjour,

J'ai un petit souci avec mon code je comprend pas de ou viens mon erreur car rien ne s'affiche...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
<?php
 
$sql = mysql_query("select id_patient, id_therapeute from therapeute_patient where id_patient = '$idpatient' ORDER BY id ASC");
 
while($donnees = mysql_fetch_array($sql)) {
 
 $datatherapeute= htmlentities($donnees['id_therapeute']) ;
 
 $sqlthe = mysql_query("select nom, prenom, specialite from therapeutes where id = '$datatherapeute'");
 $donneestherapeute = mysql_fetch_array($sqlthe)or die(mysql_error());
 
$datas = htmlentities($donneestherapeute['nom']).' '.htmlentities($donneestherapeute['prenom']).' ['.htmlentities($$donneestherapeute['specialite']).'] <br />';
 
 echo $datas;
 
	 }
  ?>
pour expliquer rapidement, j'ai 2 table "therapeute_patient" et "therapeutes"

"therapeute_patient" et constituer de3 colonne : id, id_patient et id_therapeute

a l'aide de l'id_therapeute je vais récupérer les information du thérapeute afin d'afficher son nom son prénom et sa spécialité.

Malheureusement rien ne s'affiche.. l'id du thérapeute est bien récupérer dans la variable " $datatherapeute" j'ai vérifier en faisant un ECHO.

Merci pour votre aide
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h28   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

Ton problème se situe ici :
Code :
where id = '$datatherapeute'
Est-ce que therapeutes.id est une chaine ou un numérique ?
Si c'est un numérique : remplace par :
Code :
where id = $datatherapeute
Sinon, tu échappes ton id avec htmlentities() avant de le soumettre comme filtre. Vérifies que tu as bien échappé ton id de la même manière lors de sa création. C'est symétrique : l'échappement préalable à l'entrée en base doit correspondre à l'échappement préalable à toute extraction.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h42   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
Oui rawscr id_therapeute est bien un numérique

merci pour ton aide, sa m'a débloqué une partie.

maintenant j'ai 2 erreur affiché...

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given

et

Notice: Undefined variable
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 18h51   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Je suppose que pour les autres id c'est pareil :
Code :
1
2
$sql = mysql_query("select id_patient, id_therapeute from therapeute_patient where id_patient = $idpatient ORDER BY id_patient ASC");
$sqlthe = mysql_query("select nom, prenom, specialite from therapeutes where id = $datatherapeute");
J'ai changé id par id_patient dans ta clause ORDER BYTon erreur signifie que mysql_query() ne s'en est pas sorti et renvoie false et du coup mysql_fetch_array() ne reçoit pas le bon type de paramètre.
Erreur mysql -> mysql_error()
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 19h08   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
ça résous pas les erreurs non plus..

ça sert a rien de mettre un ORDER sur id_patient car l'id_patient recherché est toujours la même c'est pour cela que je classe selon le ID
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 19h21   #6
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par djo007 Voir le message
ça sert a rien de mettre un ORDER sur id_patient car l'id_patient recherché est toujours la même c'est pour cela que je classe selon le ID
Au temps pour moi, je pédale dans le semoule.
Mis à part mes divagations, est-ce que tu pourrais poster les erreurs mysql que tu as ou tout autre message qui mettrait sur la voie.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 19h28   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given

et dessous

Unknown column 'Aut' in 'where clause'
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 19h33   #8
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Remplaces ton 1er sql par
Code :
$sql = mysql_query("select id_patient, id_therapeute from therapeute_patient where id_patient = $idpatient ORDER BY id ASC") or die(mysql_error());
et postes le message d'erreur
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 19h40   #9
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
idem

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\wamp\dossier.php on line 290

la ligne 290 correspond à:
Code :
$donneestherapeute = mysql_fetch_array($sqlthe)or die(mysql_error());
et

Unknown column 'Aut' in 'where clause'
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 19h53   #10
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
alors la c'est bon je n'ai plus d'erreur,

le problème venait de ma base de donnée, 'Aut' étais dans une ligne de la base de donné, seulement une ligne n'avais pas de valeur numérique c'est la raison de cette erreur.

cependant maintenant que aucune erreur s'affiche, j'ai rien qui s'affiche..
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 20h22   #11
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
J'ai repris ton code, peux tu essayer avec ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sql  = "select id_patient, id_therapeute from therapeute_patient where id_patient = $idpatient ORDER BY id ASC";
$resA = mysql_query($sql) or die(mysql_error());
echo 'nbRec 1 :', mysql_num_rows($resA), '<br />';
 
while($data = mysql_fetch_assoc($resA)) {
   $sql = "select nom, prenom, specialite from therapeutes where id = ".htmlentities($data['id_therapeute']);
   $resB = mysql_query($sql) or die(mysql_error());
   echo 'nbRec 2 :', mysql_num_rows($resB), '<br />';
   $row = mysql_fetch_assoc($resB);
   echo  htmlentities($row['nom']), ' ',
         htmlentities($row['prenom']), ' [',
         htmlentities($row['specialite']), '] <br />';
}
?>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 20h24   #12
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
bon ça avance,

j'ai retirer ORDER BY id ASC si non la variable $datatherapeute enregistre seulement le premier id et rien de plus d'ou la raison pour la quel rien ne s'affiche..

maintenant j'ai quand même une autre erreur,

Notice: Undefined variable: 1 in D:\wamp\dossier.php on line 292

correspondant à la ligne:
Code :
$datas = htmlentities($donneestherapeute['nom']).' '.htmlentities($donneestherapeute['prenom']).' ['.htmlentities($$donneestherapeute['specialite']).'] <br />';
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 20h34   #13
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
oui tu as mis $$ dans cette partie :
Code :
htmlentities($$donneestherapeute['specialite'])
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2012, 20h35   #14
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
problème résolu

erreur de frappe '$$donneestherapeute['specialite']' j'avais misdeux '$'

Merci de ton aide rawsrc

Bonne soirée
djo007 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 22h41.


 
 
 
 
Partenaires

Hébergement Web