IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

select dans un while


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Ton problème se situe ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where id = '$datatherapeute'
    Est-ce que therapeutes.id est une chaine ou un numérique ?
    Si c'est un numérique : remplace par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    Par défaut
    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

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Je suppose que pour les autres id c'est pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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()

  5. #5
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    Par défaut
    ç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

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    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.

  7. #7
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    Par défaut
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given

    et dessous

    Unknown column 'Aut' in 'where clause'

  8. #8
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Remplaces ton 1er sql par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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

  9. #9
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $donneestherapeute = mysql_fetch_array($sqlthe)or die(mysql_error());
    et

    Unknown column 'Aut' in 'where clause'

  10. #10
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    Par défaut
    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..

  11. #11
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    J'ai repris ton code, peux tu essayer avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 />';
    }
    ?>

  12. #12
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    $datas = htmlentities($donneestherapeute['nom']).' '.htmlentities($donneestherapeute['prenom']).' ['.htmlentities($$donneestherapeute['specialite']).'] <br />';

  13. #13
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    oui tu as mis $$ dans cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    htmlentities($$donneestherapeute['specialite'])

  14. #14
    Membre confirmé
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 150
    Par défaut
    problème résolu

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

    Merci de ton aide rawsrc

    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] SELECT dans un WHILE
    Par davleo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/12/2013, 17h25
  2. [MySQL] Select dans une boucle while
    Par voyageurdumonde dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/04/2011, 00h35
  3. selected dans while
    Par rduvrac dans le forum Langage
    Réponses: 3
    Dernier message: 04/03/2008, 10h09
  4. [MySQL] Requête SELECT insérée dans un WHILE
    Par boubourse92 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 17/01/2008, 16h01
  5. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo