Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/10/2003, 11h45   #1
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
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]
access001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2003, 14h44   #2
Membre confirmé
 
Inscription : octobre 2003
Messages : 266
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 266
Points : 287
Points : 287
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.
Krapulax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2003, 15h16   #3
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
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
access001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/10/2003, 16h03   #4
Membre confirmé
 
Inscription : octobre 2003
Messages : 266
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 266
Points : 287
Points : 287
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 ?
Krapulax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2003, 09h48   #5
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
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) ???????
access001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2003, 10h18   #6
Membre confirmé
 
Inscription : octobre 2003
Messages : 266
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 266
Points : 287
Points : 287
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 :
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
}
 
?>
Krapulax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2003, 14h08   #7
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
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 !
access001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2003, 14h27   #8
Membre confirmé
 
Inscription : octobre 2003
Messages : 266
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 266
Points : 287
Points : 287
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.
Krapulax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2003, 14h32   #9
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
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 !
access001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2003, 14h58   #10
Membre confirmé
 
Inscription : octobre 2003
Messages : 266
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 266
Points : 287
Points : 287
ok ok !

Je donne simplement mon avis.
Krapulax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2003, 10h45   #11
Invité de passage
 
Inscription : juillet 2003
Messages : 11
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 11
Points : 0
Points : 0
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
access001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h25.


 
 
 
 
Partenaires

Hébergement Web