Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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 :
$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)
Hors ligne
Tu dois spécifier la liaison dans le JOIN :
$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)
Hors ligne
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)
Hors ligne
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 :
$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)
Hors ligne
Pages: 1