Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-03-2008 12:58:03

ubini
Membre
Lieu: gillarens/Suisse
Date d'inscription: 23-01-2008
Messages: 110
Site web

[résolu][Zend_Db][1.5]comment utiliser "case" ?

Je suis en train de créer un agenda de groupe. Cet agenda contient plusieurs catégories (formations, personnel,...). Si on utilise la catégorie personnelle alors il y a un id_user pour savoir qui est concerné. Maintenant j'aimerais créer une requête pour sortir toutes les données concernant un utilisateur, donc toutes les formations et tout ce qui concerne son agenda personnel.

Afin de trier les données personnelles, j'aimerais utiliser Case comme par exemple (mais cela ne fonctionne pas) :

->where('CASE WHEN (agendas.category = "personnel") THEN agendas.id_user = "'.$id_user.'"')

Pour le moment j'utilise un if dans ma vue pour trier ces données mais je ne trouve pas que c'est très propre et suis presque sûr qu'il y a moyen de mieux faire, vous auriez par hasard une idée ?

Dernière modification par ubini (16-03-2008 18:15:49)


http://www.easyswap.org - site d'échange de biens et de services conçu avec jQuery et Zend Framework
http://www.lambelet.net - mon blog perso et inutile

Hors ligne

 

#2 07-03-2008 14:47:35

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [résolu][Zend_Db][1.5]comment utiliser "case" ?

Salut ubini,

Je crois que tu confonds 2 trucs :
- switch / case : c'est du PHP
- les paramètre de where, c'est du SQL

si tu veux utiliser switch case, c'est au niveau PHP que tu dois jouer. Ca pourrait donner :

Code:

switch ($category) {
  case "personnel":
    $select->where("agendas.is_user=?",$id_user);
    break;
  case "toto":
    $select->where("xxx=?",$xxx);
    break;
}

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 07-03-2008 16:09:11

julz
Membre
Date d'inscription: 19-07-2007
Messages: 33

Re: [résolu][Zend_Db][1.5]comment utiliser "case" ?

bonjour,

il existe aussi une notion de "case then " dans le language sql ( mysql 5 le gère par exemple)

http://dev.mysql.com/doc/refman/5.0/en/ … tions.html

l'implémentation pdo ne prévoit pas cette éventualité, il faut passer par une requête avec $bd->query('requete') ou voir du côté de  Zend_Db_Expr ()

bons tests :-)

Hors ligne

 

#4 07-03-2008 17:11:15

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [résolu][Zend_Db][1.5]comment utiliser "case" ?

regarde le code de Zend_auth il créé une requête avec case

Hors ligne

 

#5 12-03-2008 09:04:03

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [résolu][Zend_Db][1.5]comment utiliser "case" ?

Perso j'ai un cas d'exemple qui marche:

Code:

$select
            ->from(array('a'=>DB_TABLE_ADS),array(
                'a.*',
                'id'=>'a.id_ad',
                'bookmark'=>'b.value',
                new Zend_Db_Expr('CASE a.fk_user WHEN '.$this->user->id_user.' THEN 1 ELSE 0 END AS myad')
            ))

Hors ligne

 

#6 16-03-2008 18:15:24

ubini
Membre
Lieu: gillarens/Suisse
Date d'inscription: 23-01-2008
Messages: 110
Site web

Re: [résolu][Zend_Db][1.5]comment utiliser "case" ?

Youppie et merci beaucoup Mr.MoOx !


http://www.easyswap.org - site d'échange de biens et de services conçu avec jQuery et Zend Framework
http://www.lambelet.net - mon blog perso et inutile

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