Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-03-2012 12:05:05

mouray
Nouveau membre
Date d'inscription: 12-03-2012
Messages: 3

Requête select de plusieurs champs sur plusieurs tables

Bonjour,

Je suis débutant en développement avec zend mvc et je me demande si quelqu'un peut m'aider pour créer une requête de sélection de plusieurs champs sur plusieurs tables.
la structure des tables est la suivante :

table prestations :
prestations [numprestation (clé primaire), dateprestation, service, medecin, codepatient (clé étrangère) ].

table Tests :
tests [numtest (clé primaire), desiganation, idgroupetest (clé étrangère) ]

table testprestation (association porteuse entre les deux precedentes tables)
testprestation [cpt (clé primaire), numprestation (clé étrangère), numtest (clé étrangère), resultat, remarque ).

je veux faire une requête du genre :

Select p.numprestation,p.dateprestation,p.service,p.medecin,tp.resultat,t.designation
From prestations as p, tests as t, testprestation as tp
where p.numprestation=tp.numprestation
and t.numtest=tp.numtest
and p.codepatient ='X'
and t.idgroupetest =1


J'ai déjà tetster ceci, mais il parait qu'il ne fonctionne pas :

        $db = Zend_Db_Table_Abstract::getDefaultAdapter();
    $select = new Zend_Db_Select($db);
    // Requête
    $select ->from((array('p' => 'prestations','t' =>'tests','tp' => 'testprestation')),
                    array('p.numprestation' ,'p.datePrestation','p.service','p.medecin'));
    $select->join(array('tp' => 'testprestation'),'tp.numprestation=p.numprestation',array('tp.resultat'));
    $select->join(array('t'=>'tests'),'t.numtest=tp.numtest',array('t.designation'));
    $select->where('p.codepatient='.$patient);
    $select->where('t.idgroupetest='.$groupe);   
    $row = $select->query()->fetchAll();



Si quelqu'un peut m'aider ? et merci d'avance

Hors ligne

 

#2 12-03-2012 16:21:33

f.garoby
Membre
Date d'inscription: 02-03-2011
Messages: 105

Re: Requête select de plusieurs champs sur plusieurs tables

Bonjour,
Il te faut utiliser la fonction setIntegrityCheck() (cf. http://framework.zend.com/manual/en/zend.db.table.html)

Hors ligne

 

#3 12-03-2012 16:37:44

mouray
Nouveau membre
Date d'inscription: 12-03-2012
Messages: 3

Re: Requête select de plusieurs champs sur plusieurs tables

Bonjour,

Si quelqu'un peut m'ecrire la requête à mettre svp

Hors ligne

 

#4 15-03-2012 11:59:34

LMR
Nouveau membre
Date d'inscription: 15-03-2012
Messages: 1

Re: Requête select de plusieurs champs sur plusieurs tables

Bonjour, tu peux tester ça :
    $db = Zend_Db_Table_Abstract::getDefaultAdapter();
    $select = new Zend_Db_Select($db);
    // Requête
    $select ->from((array('p' => 'prestations')),array('p.numprestation' ,'p.datePrestation','p.service','p.medecin'))
            ->join(array('tp' => 'testprestation'),'tp.numprestation = p.numprestation',array('tp.resultat'))
            ->join(array('t'=>'tests'),'t.numtest = tp.numtest',array('t.designation'))
            ->where('p.codepatient='.$patient)
            ->where('t.idgroupetest='.$groupe);

    $row = $select->query()->fetchAll();

s'il te renvoie un message d'erreur envoie le  nous.
Bon courage.

Hors ligne

 

#5 15-03-2012 15:06:54

r.monceau
Membre
Date d'inscription: 02-11-2009
Messages: 59

Re: Requête select de plusieurs champs sur plusieurs tables

Salut,

Il te faut juste rajouter la ligne suivante lors de la préparation de ta requête :

Code:

$select->setIntegrityCheck(false);

++

Hors ligne

 

#6 16-03-2012 17:34:27

mouray
Nouveau membre
Date d'inscription: 12-03-2012
Messages: 3

Re: Requête select de plusieurs champs sur plusieurs tables

Merci,

J'ai ajouté la ligne et ça marche.

Je vous remercie bien

Hors ligne

 

#7 20-05-2015 13:32:05

yasmina
Nouveau membre
Date d'inscription: 26-04-2015
Messages: 9

Re: Requête select de plusieurs champs sur plusieurs tables

Bonjour,
s'il vous plaie quelqu'un me dit comment faire le controleur et l'affichage(vue) avec cette requête à 3 tables

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages