Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-08-2009 10:32:30

Dede
Membre
Date d'inscription: 26-06-2009
Messages: 99

Requête sur une table dont le nom est dans un premier SELECT

Bonjour,

Je cherche à faire une selection de donnée (groupé si possible) de ce type :

J'ai un table tb_articles avec plusieurs colonnes (`id`,`nom`,`description`,`photo`,`tb_prix`)
chaque articles à donc un table prix différente qui est définit par la colonne `tb_prix`:

ex : table prix_art_1 pour l'article 1
       table prix_art_2 pour l'article 2 ...etc

je cherche donc à faire un requête de ce type :

Code:

$select->from(array('a'=>'tb_articles'),array('id','nom','description','photo'))
                ->join(array('p'=>"a.tb_prix"),                  //qui définit la table dans laquelle chercher
                             "6 = p.id_prix")                    // la condition ??
                ->where("a.nom = article_1");

J'espère que je suis asser clair (j'ai du mal à formuler une recherche google!!)

Dernière modification par Dede (14-08-2009 10:33:39)


« Il ne faut pas lier un navire à une seule ancre, ni une vie à un seul espoir. »
Epictète
http://www.noumcreation.com

Hors ligne

 

#2 14-08-2009 10:41:20

keilnoth
Membre
Date d'inscription: 30-08-2008
Messages: 128
Site web

Re: Requête sur une table dont le nom est dans un premier SELECT

Tu dois spécifier la liaison dans le JOIN :

Code:

$select->from(array('a' => 'tb_articles'), array('id','nom','description','photo'))
          ->join(array('p' => "tb_prix"), "a.tb_prix = p.tb_prix")
          ->where("a.nom = ?", "article_1");

Dernière modification par keilnoth (14-08-2009 10:42:03)


Quelques tutoriaux Zend Framework !

Hors ligne

 

#3 14-08-2009 10:52:10

Dede
Membre
Date d'inscription: 26-06-2009
Messages: 99

Re: Requête sur une table dont le nom est dans un premier SELECT

Le soucis c'est qu'il n'y as aucune liaisons.
La seul liason possible entre les deux tables serait tb_articles -> nom.tb_prix ?

Peut être que je devrais ajouter un colonne dans chaque table tb_prix nqui serait lier à la colone tb_prix de la table tb_articles ?

Mais dans ce cas chaque ligne aurait la même valeur qui serait le nom de la table ?
Le vrai soucis c'est que je cherche à donner le nom de la table dans laquelle il faut chercher une valeur qui serait liée à son id...

Dernière modification par Dede (14-08-2009 10:54:03)


« Il ne faut pas lier un navire à une seule ancre, ni une vie à un seul espoir. »
Epictète
http://www.noumcreation.com

Hors ligne

 

#4 14-08-2009 16:38:45

Dede
Membre
Date d'inscription: 26-06-2009
Messages: 99

Re: Requête sur une table dont le nom est dans un premier SELECT

Bon et bien j'ai résolu le problème !!

Comme il est impossible (enfin je crois) de faire une liaison entre une valeur de ligne et le nom d'une table,
J'ai refait ma base avec une seul table pour tous les prix.

J'ai donc mis une colonne "ref_article" indexé pour les appel...

requête final :

Code:

$select->from(array('a' => 'tb_articles'), array('id','nom','description','photo'))
          ->join(array('p' => "tb_prix"),
                    "a.ref_prix = p.ref_article",
                     array('prix'))
          ->where("a.nom = ?", $nom)
          ->where("p.id = ?", $variable);

Dernière modification par Dede (14-08-2009 16:39:54)


« Il ne faut pas lier un navire à une seule ancre, ni une vie à un seul espoir. »
Epictète
http://www.noumcreation.com

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