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

Langage PHP Discussion :

afficher le patient


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 15
    Points : 9
    Points
    9
    Par défaut afficher le patient
    Bonjour, je suis en train de développer un site sur une clinique avec l'agent et je cherche d'afficher le patient dont le nss(numéro de sécurité sociale) correspond à celui que j'ai saisi dans le champ 'saisi' mais le problème, c'est que à chaque fois j'affiche le patient cherché en bas il y a la page où je dois créer un patient si le nss saisi ne correspond à aucun patient dans la base de donnée ou il n'y est pas présent puisque j'ai séparé la page où je dois saisir les patients ou les modifier dans GestionPatients.php e la page où j'affiche le patient cherché, ConsulterSynthèse.php. J'ai structuré le site en MVC.
    Voici le fichier GestionPatients.php:
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Gestion</title>
    </head>
    <header>
        Gestion des patients
    </header>
    <body>
     
    <div>
        <h1>Consulter le synthèse</h1>
        <fieldset>
            <legend>Informations des patients</legend>
            <form method="post" action="clinique.php">
                <p>
                    <label for="prenom">Prenom:</label>
                    <input type="text" name="prenom" id="prenom" />
                </p>
                <p>
                    <label for="nom">Nom:</label>
                    <input type="text" name="nom" id="nom"/>
                </p>
                <p>
                    <label for="adresse">Adresse:</label>
                    <input type="text" name="adresse" id="adresse"/>
                </p>
                <p>
                    <label for="numtel">Numéro de téléphone:</label>
                    <input type="text" name="numtel" id="numtel"/>
                </p>
                <p>
                    <label for="date">Date:</label>
                    <input type="date" name="datet" id="date"/>
                </p>
                <p>
                    <label for="nss">NSS:</label>
                    <input type="text" name="nss" id="nss"/>
                </p>
                <p>
                    <label for="dep">Département de naissance:</label>
                    <input type="text" name="dep" id="dep"/>
                </p>
                <p>
                    <label for="solde">Solde:</label>
                    <input type="text" name="solde" id="solde"/>
                </p>
                <p>
                    <input type="submit" name="ajoutsynthèse" value="Ajouter le patient" />
                </p>
            </form>
        </fieldset>
    </div>
     
     
    <div>
        <fieldset>
            <legend>Modifier patient</legend>
            <form method="post" action="clinique.php">
                <p>
                    <label for="type">Qu'est-ce que tu veux modifier?</label>
                    <select name="type" id="type" multiple >
                        <option name="nommodif" value="nommodif">Nom</option>
                        <option name="prenomodif" value="prenomodif">Prenom</option>
                        <option name="adressmodif" value="adressmodif">Adresse</option>
                        <option name="datemodif" value="datemodif">Date de Naissance</option>
                        <option name="depmodif" value="depmodif">Département de naissance</option>
                        <option name="soldemodif" value="soldemodif">Solde</option>
                        <option name="nssmodif" value="nssmodif">NSS</option>
                        <option name="numtelmodif" value="numtelmodif">Numéro de téléphone</option>
                    </select>
                </p>
                <p>
                    <input type="submit" name="modif" value="Modifier le patient"/>
                </p>
            </form>
     
        </fieldset>
    </div>
    </body>
    </html>
    Et la page ConsulterSynthèse.php:
    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
     
    <!doctype html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Consulter le synthèse</title>
    </head>
    <body>
        <header>Clinique</header>
     
        <fieldset>
            <legend>Liste des patients</legend>
                <?php echo "$contenu1"; ?>
        </fieldset>
        <footer>Informations</footer>
    </body>
    </html>
    Et la page gabaritAgent qui correspond à la page accueil de l'agent:
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <!doctype html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Agent</title>
    </head>
    <body>
    <header>
        <nav>
            <ul>
                <li> <a href="depot.php">Gestion des dépôts</a> </li>  <li><a href="paiement.php">Payements</a> </li> <li><a href="ListeRendezvous.php">Gestion des rendez-vous</a></li>
            </ul>
        </nav>
    </header>
    <fieldset>
        <legend>Saisir le NSS</legend>
        <form method="post" action="clinique.php">
            <p>
                <label for="saisi">Saisie de NSS:</label>
                <input type="text" name="saisi" id="saisi"/>
     
            </p>
            <p>
                <input type="submit" name="saisienss" value="Afficher le patient"/>
            </p>
        </form>
    </fieldset>
     
    <p>
        <a href="vue/GestionPatients.php">Aller à la page de Gestion des patients</a>
    </p>
     
     
     
    <fieldset>
        <legend>Retrouver le NSS</legend>
        <form method="post" action="clinique.php">
            <p>
                <label for="nomnss">nom de NSS:</label>
                <input type="text" name="nomnss" id="nomnss"/>
            </p>
            <p>
                <label for="datenss">date de naisance:</label>
                <input type="text" name="datenss" id="datenss"/>
            </p>
            <p>
                <input type="submit" name="retrouvenss" value="Retrouver le NSS"/>
            </p>
        </form>
    </fieldset>
     
     
    <footer>
        <a href="vue/InformationsAgents.php">Informations</a>
    </footer>
     
     
    </body>
    </html>
    et la page vue.php contenu dans le dossier vue qui contient le fichier html:
    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
    36
    37
    38
    39
    40
     
    <?php
     
    function afficherMedecin(){
        $accueil='';
        require_once('gabaritMedecin.php');
    }
     
    function afficherAgent(){
        $accueil='';
        require_once('gabaritAgent.php');
    }
     
    function afficherDirecteur(){
        $accueil='';
        require_once('gabaritDIrecteur.php');
    }
     
    function afficherAccueil()
    {
        $accueil = '';
        require_once('Accueil.php');
    }
     
     
     
     
    function afficherPatientCherche($nss){
        $contenu1='';
        foreach($nss as $patient){
            $contenu1.='<p>{ nom:'.$patient->nom.' , prenom: '.$patient->prenom.', adresse: '.$patient->adresse.
                ', numero de téléphone: '.$patient->numtel.' , date de naissance: '.$patient->datenaiss.' , département de naissance: '.
                $patient->departnaiss.',solde: '.$patient->solde.' } </p>';
        }
        require_once('ConsulterSynthèse.php');
    }
    function afficheGestionPatients(){
        $acc='';
        require_once("GestionPatients.php");
    }
    et page modele.php:
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    <?php
    require_once('connect.php');
     
    function getConnect(){
        require_once('connect.php');
        $connexion = new PDO('mysql:host=' . SERVEUR . ';dbname=' . BDD, USER, PASSWORD);
        $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $connexion->query("SET NAMES UTF8");
        return $connexion;
    }
     
    function AjouteLogin($mdp,$categorie){
        $connexion=getConnect();
        $req="INSERT INTO employe VALUES (0,'$mdp','$categorie')";
        $res=$connexion->query($req);
        $res->closeCursor();
    }
     
    function AjoutePatient($nom,$prenom,$date,$dep,$nss,$numtel,$adresse,$solde){
        $connexion=getConnect();
        $req="INSERT INTO patient(nss,idrdv,nom,prenom,adresse,numtel,datenaiss,departnaiss,solde) VALUES ('$nss',0,'$nom','$prenom','$adresse',$numtel,'$date',$dep,$solde)";
        $res=$connexion->query($req);
        $res->closeCursor();
    }
     
    function ChercherPatient($nss){
        $connexion=getConnect();
        $req="SELECT idrdv,nom,prenom,adresse,numtel,datenaiss,departnaiss,solde from patient where nss='$nss'";
        $res=$connexion->query($req);
        $res->setFetchMode(PDO::FETCH_OBJ);
        $patientcherche=$res->fetchAll();
        $res->closeCursor();
        return $patientcherche;
    }
     
    function SelectionnePatient(){
        $connexion=getConnect();
        $req="SELECT nss,idrdv,nom,prenom,adresse,numtel,datenaiss,departnaiss,solde from patient ";
        $res=$connexion->query($req);
        $res->setFetchMode(PDO::FETCH_OBJ);
        $pazienti=$res->fetchAll();
        $res->closeCursor();
        return $pazienti;
    }
    et page accueil:
    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
    36
    37
     
    <!doctype html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Accueil</title>
    </head>
    <body>
    <header>
        Accueil Accès compte
    </header>
    <fieldset>
        <legend>S'identifier</legend>
        <form method="post" action="clinique.php">
            <p>
                <label for="id">Login:</label>
                <input type="text" id="id" name="id"/>
            </p>
            <p>
                <label for="mdp">Mot de passe:</label>
                <input type="password" id="mdp" name="mdp"/>
            </p>
            <p>
                <input type="submit" name="identité" value="S'identifier"/>
            </p>
        </form>
    </fieldset>
     
     
    <footer>
       Informations
    </footer>
    </body>
    </html>
    et la page controleur:
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    <?php
    require_once("modele/modeleAgent.php");
     
    require_once("vue/vue.php");
     
    function CtlAccueil(){
     afficherAccueil();
    }
     
    function CtlLogin($log,$mdp){
    if (!empty($log) and !empty($mdp)){
    if (strstr($log,"med")) {
    $categorie = "medecin";
     afficherMedecin();
     AjouteLogin($mdp, $categorie);
     }
    elseif (strstr($log,'dir')) {
    $categorie = "directeur";
     afficherDirecteur();
     AjouteLogin($mdp, $categorie);
     }
    elseif (strstr($log,'agent')) {
    $categorie="agent";
     afficherAgent();
     AjouteLogin($mdp,$categorie);
     } else {
    throw new Exception("réessayer saisie");
     }
     }
    else{
    throw new Exception("Les champs sont vides, se reconnecter");
     }
    }
     
     
    function CtlGestionPatients(){
     afficheGestionPatients();
    }
     
     
     
    function CtlAffichePatient($nss){
    $p=ChercherPatient($nss);
     afficherPatientCherche($p);
    }
     
     
     
    function CtlPatient($nssaisie)
    {
    $paziente = SelectionnePatient();
    $nss = SelectionneNSS();
    if (!empty($nssaisie)) {
    for ($i = 0; $i < count($paziente); $i++) {
    $pat = $paziente[$i];
    $pa = (array)$pat->nss;
    if (in_array($nssaisie, $pa)) {
    foreach($pa as $nns) {
    if ($nssaisie == $nns) {
     CtlAffichePatient($nssaisie);
     } else {
    continue;
     }
     }
     }else{
     CtlGestionPatients();
     }
     }
     } else {
    throw new Exception("le champ de saisie NSS est vide");
     }
    }
    function CtlAjoutePatient($nom,$prenom,$date,$dep,$nss,$numtel,$adresse,$solde){
    if (!empty($nom) && !empty($prenom) && !empty($date) && !empty($dep) && !empty($nss) && !empty($numtel) && !empty($adresse) && !empty($solde)){
     AjoutePatient($nom,$prenom,$date,$dep,$nss,$numtel,$adresse,$solde);
     }else{
    throw new Exception("les champs sont vides");
     
     }
    }
    le page clinique.php qui contient le site en entier:

    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
     
    <?php
     
    require_once('controleur/controleur.php');
    try {
    if (isset($_POST["identité"])){
    $log=$_POST['id'];
    $mdp=$_POST['mdp'];
     CtlLogin($log,$mdp);
     }elseif(isset($_POST['ajoutsynthèse'])){
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $adresse=$_POST['adresse'];
    $date=$_POST['datet'];
    $dep=$_POST['dep'];
    $solde=$_POST['solde'];
    $numtel=$_POST['numtel'];
    $nss=$_POST['nss'];
     CtlAjoutePatient($nom,$prenom,$date,$dep,$nss,$numtel,$adresse,$solde);
     }
    elseif (isset($_POST['saisienss'])){
    $nssai=$_POST['saisi'];
     CtlPatient($nssai);
     }
    else{
     CtlAccueil();
     }
     
    }
    catch (Exception $e){
    $msg = 'Erreur dans le file: '.$e->getFile().' , ERREUR dans la ligne '. $e->getLine() . ' : ' . $e->getMessage() ;
    exit($msg);
    }

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    quelques remarques (ça vaut ce que ça vaut car, comme toi (probablement), je débute en MVC) :
    1. tu as plusieurs formulaires qui ont tous la même action (clinique.php)
    2. y a pas de routeur
    3. pourrais-tu donner ton arborescence (organisation des fichiers) ?
    4. C'est du MVC procédural, non ?
    5. Quand tu appelles des fonctions, tu ne vas pas les chercher dans un des 3 dossiers (M, V ou C). ex : CtlAccueil()

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Oui le site est structuré en MVC procédural et le routeur est le fichier clinique.php c'est pour ça que je redirige les formulaires pour le routeur pour l'affichage. Mais pour les fonctions des autres fichiers d'un autre dossier M ou V ou C en utilisant require_once.
    Voici l'arborescence du site:
    Nom : MVC sprint.PNG
Affichages : 127
Taille : 12,2 Ko

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Dossier zip du projet
    Bonjour, voici le dossier zip du projet:
    clinique.zip

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Pour pouvoir tester, il faudrait aussi la DDL de la table (faire un export depuis PHPMyAdmin).

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    D'accord, voici le fichier contenant les données de la BDD:
    BDDPROJET.zip

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    La seule chose que j'ai vue pour le moment, c'est une requête SQL mal formée dans modele/modeleAgent.php. Il faudrait écrire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function AjouteLogin($mdp,$categorie){
        $connexion=getConnect();
        $req="INSERT INTO employe (MDP,CATEGORIE) VALUES ('$mdp','$categorie')";
        $res=$connexion->query($req);
        $res->closeCursor();
    }
    Il manquait le nom des colonnes.
    Cela dit, j'ai pas pu tester grand chose, car quand on démarre l'appli, on a sur la page d'accueil un formulaire d'identification. Quand on le valide, ça alimente la table employe. Mais pas pu tester autre chose. Comment accède t-on au reste ?
    Juste une remarque : le moteur de stockage de tes tables est MySAM. Faudrait plutôt mettre InnoDB. (Je sais pas pourquoi mais c'est toujours ça qui est utilisé).

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Ah d'accord, je vois. En fait, dans la page d'identification quand on saisit le login il faut saisir après agent ou médecin ou directeur pour aller à la page gabaritAgent.php ou à la page gabaritMedecin ou page gabaritDirecteur et ensuite on saisit le mot de passe pour qu'ensuite on clique sur le bouton car dans la table employe la colonne catégorie correspond à la catégorie de l'employé(agent,medecin,directeur). Ensuite c'est quoi la différence entre le moteur de stockage de tables MySAM et innodb? Et comment on change le moteur de stockage?

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/07/2014, 16h50
  2. Réponses: 15
    Dernier message: 05/02/2012, 19h31
  3. afficher informations patient
    Par Di-Ma dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 06/05/2010, 13h26
  4. Réponses: 1
    Dernier message: 21/08/2009, 10h09
  5. Réponses: 1
    Dernier message: 17/07/2007, 15h45

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