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 :

Afficher des données en fonction de l'ID


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 12
    Par défaut Afficher des données en fonction de l'ID
    Bonsoir,

    Ma question est sûrement toute bête mais j'ai déjà essayé plein de choses, je vous explique. ( c'est pour un projet en bts )
    J'ai une base de données avec des patients, des médecins, des médicaments et des prescriptions. Un médecin peut prescrire des médicaments à des patients etc...
    En PHP, j'ai voulu me simplifier la tâche en créant une page de connexion ( qui fonctionne et qui est destinée uniquement aux patients, pour qu'ils puissent consulter leurs prescriptions) et qui renvoi directement le patient sur son profil ou sexe, age sont affichés. Et en dessous de ça je voulais afficher les prescriptions du patient CONNECTÉ.

    Ma table prescription est structurée comme ceci :

    - IDPrescription
    - noMedecin ( renvoyant à l'IDMedecin de la table medecin )
    - noMedic ( renvoyant à l'IDMedic de la table medicaments )
    - noPatient ( renvoyant à l'IDPatient de la table patient )
    - DateDebut
    - DateFin

    et voici le code du dit profil :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <div align="center">
    			<h2>Profil de <?php echo $userinfo['PrenomPatient']; ?> </h2>
    			<br /><br />
    			Sexe : <?php echo $userinfo['SexePatient']; ?>
    			<br />
    			Age : <?php echo $userinfo['AgePatient']; ?>
    			<br />
    			<?php
    			if(isset($_SESSION['IDPatient']) AND $userinfo['IDPatient'] == $_SESSION['IDPatient'])
    			{
    				if(isset($_GET['IDPatient']))
    				{
    					if($_GET['IDPatient'])
    					{
    						$reponse = $bdd->query('SELECT m.NomMedecin, med.NomMedic, p.DateDebut , p.DateFin FROM prescription AS p INNER JOIN medecin AS m ON(p.noMedecin = m.IDMedecin) INNER JOIN medicaments AS med ON(med.IDMedic = p.noMedic) ORDER BY DateDebut WHERE IDPatient = ' . $getid);
     
    						while ($donnees = $reponse->fetch())
    							{
    								echo  $donnees['NomMedecin'] . '**';
    								echo  $donnees['NomMedic'] . '*|*';
    								echo  $donnees['DateDebut'] . '*|*';
    								echo  $donnees['DateFin'] . '<br/>';
    							}
    							$reponse->closeCursor();
    					}
    				}
    			}
     
    			?>
    		</div>
    Donc j'aimerais que le patient voit les prescriptions qui lui sont associées, en fonction de son ID donc, mais je ne vois pas d'erreur dans ma requête, enfin je pense.

    Je vous remercie pour votre aide.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    Où est initialisé ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			if(isset($_SESSION['IDPatient']) AND $userinfo['IDPatient'] == $_SESSION['IDPatient'])
    			{
    				if(isset($_GET['IDPatient']))
    Pourquoi ?

    Si le patient est connecté, il faut juste utiliser $_SESSION['IDPatient'] !
    Pas besoin de faire passer l'id en GET ou en POST.

    2- Il faut utiliser une requête préparée !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql = "SELECT m.NomMedecin, med.NomMedic, p.DateDebut , p.DateFin 
     FROM prescription AS p 
     INNER JOIN medecin AS m 
      ON p.noMedecin = m.IDMedecin 
     INNER JOIN medicaments AS med 
      ON med.IDMedic = p.noMedic 
     WHERE IDPatient = :IDPatient
     ORDER BY DateDebut 
    ";
    $query = $bdd->prepare( $sql );
    $result = $query->execute(array(
     ':IDPatient'=>$_SESSION['IDPatient']
     ));
    Et une bonne indentation facilite la lecture, et le débugage.

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 12
    Par défaut
    La condition permettait à ce que ce la personne connectée ai accès uniquement à ses prescriptions et non pas à celle des autres "profils"

    Je test ton code et je vous redis, merci en tout cas et désolé pour les erreurs, le PHP c'est pas trop mon truc on va dire !

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 12
    Par défaut
    Bonjour, je reviens vers vous avec une nouvelle erreur. La voici :

    Nom : fvfrv.jpg
Affichages : 1900
Taille : 114,7 Ko

    Voici le code :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <body>
    		<div align="center">
    			<h2>Profil de <?php echo $userinfo['PrenomPatient']; ?> </h2>
    			<br /><br />
    			Sexe : <?php echo $userinfo['SexePatient']; ?>
    			<br />
    			Age : <?php echo $userinfo['AgePatient']; ?>
    			<br />
    			<?php				
    				$sql = ("SELECT m.NomMedecin, med.NomMedic, p.DateDebut , p.DateFin 
     					FROM prescription AS p 
    						 INNER JOIN medecin AS m 
    						  ON p.noMedecin = m.IDMedecin 
    						 INNER JOIN medicaments AS med 
    						  ON med.IDMedic = p.noMedic 
    						 WHERE IDPatient = :IDPatient
    						 ORDER BY DateDebut 
    						");
     
    						$query = $bdd->prepare( $sql );
    						$result = $query->execute(array(
    						 ':IDPatient'=>$_SESSION['IDPatient']
    						 ));
     
    						while ($donnees = $result->fetch())
    							{
    								echo  $donnees['NomMedecin'] . '*-*';
    								echo  $donnees['NomMedic'] . '*|*';
    								echo  $donnees['DateDebut'] . '*|*';
    								echo  $donnees['DateFin'] . '<br/>';
    							}
    							$result->closeCursor();
    			?>
    		</div>	
    	</body>
    La ligne 44 correspondant au "while ($donnees = $result->fetch())"

    EDIT : Après vérification, l'erreur vient de WHERE IDPatient = :IDPatient car lorsque je l'enlève le résultat s'affiche sur ma page, mais il y a les prescriptions de tous les patients, et pas uniquement celles du patient connecté.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/05/2011, 14h11
  2. Réponses: 15
    Dernier message: 31/03/2009, 22h22
  3. Réponses: 5
    Dernier message: 16/02/2009, 12h05
  4. Afficher des données en fonction d'un champ select
    Par gueud dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2008, 13h48
  5. [Conception] Afficher des données en fonction du mois.
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 05/06/2006, 10h31

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