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 :

récupérer valeur précédente


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Par défaut récupérer valeur précédente
    Bonjour, j'ai un petit problème car j'effectue un requête SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql="select nomPatient, prenomPatient, nomMedecin from examen ex, patient p, medecin m, entreprise e where ex.idpatient = p.idPatient and ex.idMedecin=m.idmedecin and ex.idEntreprise = e.idEntreprise and e.idEntreprise = '".$idEntreprise."' and dateTest >= '".$annee1."' AND dateTest <= '".$annee2."' order by dateTest";
    Puis j'affiche les résultats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while($data1 = mysql_fetch_array($req2))
    {
            echo '<tr><td><b>'.$data1['nomMedecin'].'</b></td>
            <td><b>'.$data1['nomPatient'].'</b></td>
            <td><b>'.$data1['prenomPatient'].'</b></td></tr>';
    }
    Tous marche bien sauf que je voudrai affiché une seul fois le nom du médecin s'il est le même ou sinon quand il n'est pas le même, afficher le nouveau nom.
    Donc pour cela, je voudrai comparer la valeur précédente avec la nouvelle valeur qui passe dans le while, comme ça, je compare les deux valeurs et si elles sont les mêmes je n'insère pas le nom du médecin et s'ils ne sont pas les mêmes alors j'affiche la nouvelle valeur.

    Mais le problème est que je ne sais pas comment récupérer la valeur précédente pour comparer.
    Je viens donc vers vous pour demander de l'aide.

    Merci d'avance

  2. #2
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Bonjour,

    Un DISCTINCT ne suffit pas ?
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  3. #3
    Invité
    Invité(e)
    Par défaut
    => LE SQL de A à Z : 4e partie - groupage et ensembles

    1/ modifier la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql="select nomPatient, prenomPatient, nomMedecin from [..] 
    GROUP BY nomMedecin ORDER BY dateTest DESC, nomMedecin ASC, nomPatient ASC";
    2/ affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $nom_medecin_precedent = '';
    while($data1 = mysql_fetch_array($req2))
    {
            if($data1['nomMedecin'] != $nom_medecin_precedent){
                    echo '<tr><td><b>'.$data1['nomMedecin'].'</b></td>';
            } else {
                    echo '<tr><td>&nbsp;</td>';
            }
            $nom_medecin_precedent = $data1['nomMedecin'];
            echo '<td><b>'.$data1['nomPatient'].'</b></td>
            <td><b>'.$data1['prenomPatient'].'</b></td></tr>';
    }
    ?>
    Dernière modification par FirePrawn ; 04/05/2012 à 09h34. Motif: Merci d'utiliser la balise CODE ( bouton # de l'éditeur ) !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Par défaut
    non ca ne change rien mais est ce que si dans le while je crée une variable où je stock la valeur et que je compare la variable avec la nouvelle valeur, cela va marché ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while($data1 = mysql_fetch_array($req2))
    {
           //comparaison ici entre la var et data1[nomMedecin]
           echo '<tr><td><b>'.$data1['nomMedecin'].'</b></td>
           <td><b>'.$data1['nomPatient'].'</b></td>
           <td><b>'.$data1['prenomPatient'].'</b></td></tr>
           <tr><td><br /></td></tr>';
           $valeurPrec = $data1['nomMedecin'];    
    }

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // premiere lecture, pour mettre à jour $valeurPrec
    // car à la première lecture, c sera forcement le premier médecin
    while($data1 = mysql_fetch_array($req2))
    {
           //comparaison ici entre la var et data1[nomMedecin]
           echo '<tr><td><b>'.$data1['nomMedecin'].'</b></td>
           <td><b>'.$data1['nomPatient'].'</b></td>
           <td><b>'.$data1['prenomPatient'].'</b></td></tr>
           <tr><td><br /></td></tr>';
           $valeurPrec = $data1['nomMedecin'];    
    }

  6. #6
    Invité
    Invité(e)

  7. #7
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Ou alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // Premiere lecture
    // $valeurPrec = $data1[nomMedecin];
    do
     {
           // test si $valeurPrec <> $data1['nomMedecin']
           echo '<tr><td><b>'.$data1['nomMedecin'].'</b></td>
           <td><b>'.$data1['nomPatient'].'</b></td>
           <td><b>'.$data1['prenomPatient'].'</b></td></tr>
           <tr><td><br /></td></tr>';
           $valeurPrec = $data1['nomMedecin'];    
    }
     while( $data1 = mysql_fetch_array($req2));

    Petite question à jreaux62 le GROUP BY s'utilise lorsque nous utilisons des fonctions dans une requête SQL (genre count), nous pouvons l'utiliser comme celà ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 18
    Par défaut
    ok merci pour votre aide, ça marche maintenant =D

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

Discussions similaires

  1. Récupérer valeur de date précédente
    Par feldi dans le forum SQL
    Réponses: 35
    Dernier message: 06/12/2011, 14h17
  2. Réponses: 1
    Dernier message: 24/04/2010, 18h36
  3. Cibler une valeur et récupérer sa précédente
    Par darontankian dans le forum Requêtes
    Réponses: 1
    Dernier message: 24/04/2008, 23h51
  4. Récupérer valeur précédente
    Par Hbenne dans le forum Access
    Réponses: 1
    Dernier message: 31/07/2006, 09h36
  5. récupérer valeur d'un ID après insertion
    Par rikidi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/08/2003, 22h21

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