IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Db PHP Discussion :

select left(champs, 2)


Sujet :

Zend_Db PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 16
    Points : 12
    Points
    12
    Par défaut select left(champs, 2)
    Salut =)

    Voila j'ai la requête suivante :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select LEFT(v.cp, 2) as dept, count(*)
    from villes as v
    join prestations as p on p.ville_id = v.id
    group by LEFT(v.cp, 2)

    qui fonctionne et m'affiche le nombre de villes dans chaque département mais je n'arrive pas à l'écrire avec le "langage" zend ? c'est surtout le select left() qui m'embête sous zend.

    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    $db = Zend_Db_Table_Abstract::getDefaultAdapter();
        	$select = new Zend_Db_Select($db);
        	$select->reset();
     
    	    	$select ->from(array('v'=>'villes'),array('cp','somme'=>'COUNT(*)'))
    	    	->joinRight(array('p'=>'prestations'), 'p.ville_id = v.id',array(''))
    	    	->group('v.cp');
    	    	//->order(array('somme DESC'));
     
        	//$this->view->message = $select;
        	//$this->view->paginator = $db->fetchAll($select);
     
        	$adapter = new Zend_Paginator_Adapter_DbSelect($select);
        	$paginator=new Zend_Paginator($adapter);
        	$paginator->getTotalItemCount();
        	$paginator->setItemCountPerPage($this->_getParam('nb', 20));
        	$paginator->setCurrentPageNumber($this->_getParam('page',1));
     
        	$this->view->totalresults=$paginator->getTotalItemCount();
        	$this->view->paginator = $paginator;
    Mais dans ce code je n'utilise pas la même requete que celle voulue avec : select left (villes.cp, 2)

    Quelq'un sait comment faire?
    Merci

  2. #2
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,

    Essaye comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $select->from(array('v'=>'villes'),array('cp' => 'LEFT(v.cp, 2)','somme'=>'COUNT(*)'))
    	  ->joinRight(array('p'=>'prestations'), 'p.ville_id = v.id',array(''))
    	  ->group('cp');


    Les boutons et existent, servez-vous en

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    merci amoiraud,

    Il y avait un truc a ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $select->from(array('v'=>'villes'),array('cp' => 'LEFT(v.cp, 2)','somme'=>'COUNT(*)'))
    	  ->joinRight(array('p'=>'prestations'), 'p.ville_id = v.id',array(''))
    	  ->group('LEFT(v.cp, 2)');
    tu as mis le LEFT(v.cp, 2) au début mais tu l'avait oublié dans le group

    Merci de ton aide =)))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Access/VBA] Selection de champ d'une List Box
    Par elgringo2007 dans le forum Access
    Réponses: 2
    Dernier message: 26/06/2006, 15h07
  2. selection des champ minuscule
    Par jejam dans le forum Oracle
    Réponses: 5
    Dernier message: 15/06/2006, 16h01
  3. Réponses: 2
    Dernier message: 27/10/2005, 15h51
  4. [CR 8.5] filtrer avec l'expert selection un champs calculé!!
    Par abdel6908 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/06/2005, 10h30
  5. [Performance] RecordCount ou select Count(champ) ?
    Par shwin dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 28/09/2004, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo