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

Requêtes PostgreSQL Discussion :

recherche enr dans table sur clé primaire


Sujet :

Requêtes PostgreSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut recherche enr dans table sur clé primaire
    bonjour

    je voudrais créer une fonction qui recoit en parametre le numéro d'un patient
    ensuite recherché ce patient dans la table patient sur le num patient

    id_patient
    nom_patient
    pre_patient
    adr_patient
    sexe_pat
    statut_pat
    date_inscription

    la fonction devra renvoyé l'enregistrement complet avec chaque champ de l'enreg une fois trouvé sinon affiché un msg "patient non existant"

    merci bcp [color]

  2. #2
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Ma question est peut-être bête mais je la pose quand même :
    parles-tu de la création d'une fonction sous postgresql ?

    En effet, à ma connaissance, tu peux créer des fonctions qui retournent plusieurs lignes mais pas qui retournent plusieurs colonnes.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    oui oui je parle bien d'une fonction sous postgresql

    ce que je veux faire c'est qu'une fois avoir trouvé l'enregistrement qui correspond , a ce moment la je voudrais récupéré certains champs de cette enregistrement

    je t'explique dans un formulaire html le patient introduit son numéro de patient et qd il clik sur recherché la fonction doit retrouvé ce patient grace a son numéro de patient qui est la clef primaire dans la table patient
    une fois le patient retrouvé grace a son numéro de patient, je dois complété les infos du formulaires grace au résultat retour de la fonction
    le résultat sera le nom, prénom,adr etc... du patient

  4. #4
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Le problème est que la fonction ne te retournera pas tous les champs. Au mieux, elle pourrais te retourner l'OID de l'enregistrement.

    A mon avis, tu vas devoir gérer ceci côté CGI (php, perl, python, C ..... enfin ce que tu utilises pour faire un site dynamique), et faire un simple "select" avec ton numéro de patient comme clause where.

    Quelle langage utlises-tu pour ton application ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    j'utilise du php !!!

    on ne peut pas récupéré qques champs d'un enregistrement sur un formulaire extérieur (html fait en php) ???????

  6. #6
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Avec une fonction ou procédure stockée dans Postgres, ce n'est pas possible.

    Par contre, rien ne t'empêche de créer une fonction php qui le fassent.

    J'ai fait le code de tête, je ne l'ai pas testé mais cela ne devrait pas trop être mauvais :

    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
    <?php
     
    monpatient = array();
    monpatient = cherche_patient('100');
    print "Nom du patient :".monpatient["nom_patient"];
     
    function cherche_patient(id) {
     
    // Notre tableau de résultat
      $data = array();
     
    // création d'une connexion en local sur ma base myDB avec l'utlisateur myUser et le mot de passe myPassword
      $conn = pg_connect("host=localhost dbname=myDB user=myUser password=myPassword");
      if (!$conn) {
          echo "Une erreur est survenue.\n";
          exit;
      }
     
    // requête select sur ma table mes_patients avec tous les champs voulus et une clause where sur le numéro de patient (je pars du principe qu'il est alphanumérique)
      $res = pg_exec($conn, "select id_patient, nom_patient, pre_patient, adr_patient, sexe_pat, statut_pat, 
      date_inscription from mes_patients where id_patient='$id'");
      if (!$res) {
          echo "Une erreur est survenue.\n";
          exit;
      }
     
      // Dans le cas où il n'y qu'une seule ligne retournée (0 est le numéro de ligne de résultat), sinon il faut faire une boucle
      $data = pg_fetch_array($result, 0);
     
    	pg_close($conn);
     
    // et on retourne le tableau	
      return $data
    }
     
    ?>

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    au fait apres réflexion la meilleure chose a faire serait

    une fonction sur postgres qui renvoi le id_patient si la fonction le trouve
    ensuite si la fonction renvoi le id_patient trouvé l'utilisé coté php pour faire un simple select et enfin remplir les champs du formulaire avec le résultat de la requete !!!

    a mon avis sa devrait etre bon !

  8. #8
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    Est-ce que ton numéro de patient est différent de l'id_patient ?

    Si ce n'est pas le cas, tu n'as qu'à modifier un peu ma fonction php pour inclure un test sur le nombre d'enregistrement retourné par la requête. Si il y en a 0, c'est que le patient est inconnu.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    au fait apres réflexion la meilleure chose a faire serait

    une fonction sur postgres qui renvoi le id_patient si la fonction le trouve
    ensuite si la fonction renvoi le id_patient trouvé l'utilisé coté php pour faire un simple select et enfin remplir les champs du formulaire avec le résultat de la requete !!!

    a mon avis sa devrait etre bon !

  10. #10
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    266
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 266
    Points : 318
    Points
    318
    Par défaut
    ok ok !

    Je donne simplement mon avis.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    comment utilisé le résultat booléen d'une requete sur postgres avec un select sous php

    donc si ma fonction qui recherche le patient sur postgres renvoie (le id_patient) dans le cas ou elle trouve le patient, faut que le select sous php s'enclenche pour faire le select avec comme id_patient le id_patient renvoyé par la fonction

Discussions similaires

  1. Supprimer dans table à deux clés primaires
    Par la_zbou dans le forum Débuter
    Réponses: 2
    Dernier message: 12/06/2013, 21h21
  2. [MySQL] Recherche multicrtére dans table my sql
    Par belakhdarbts10 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/01/2013, 14h47
  3. [WD11] Saisie dans table sur requête
    Par jmdav dans le forum WinDev
    Réponses: 7
    Dernier message: 07/12/2011, 08h56
  4. Recherche valeur dans table Access
    Par Stefloulou dans le forum Access
    Réponses: 1
    Dernier message: 05/11/2005, 08h45
  5. recherche enr dans table sur clé primaire
    Par access001 dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 10/10/2003, 10h45

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