Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 13-11-2009 10:42:48

tsunami chups
Membre
Date d'inscription: 10-09-2009
Messages: 11

[Résolu] Problème clause LIKE

Bonjour,

je veu faire un like sur une table le probleme s'est qu'il me retourne l'erreur
missing ) in parenthetical

[Break on this error] ({"totalCount":"0","records":[],"errors"...um` WHERE (name LIKE "Noct") LIMIT 25)

Je vous copie mon code

Code:

$this->_helper->viewRenderer->setNoRender();
        
        $nberrors = 0;
        $return = array();
        $errors = array();
        $params = array();
    
        $recherche = $_POST['recherche'];
        
        if ($this->_hasParam('start'))
        {
            $start = $this->_getParam('start');
            if (!intval($start))
            $start = 0;
        }
        else
        $start = 0;

        // initialize the parameter limit (number of results)
        if ($this->_hasParam('limit'))
        {
            $nbresults = $this->_getParam('limit');
            if (!intval($nbresults))
            $nbresults = 25;
        }
        else
        $nbresults = 25;
        
        $album = new AlbumModel;

         $params = array();
        /*$params['keyword'] = $this->_getParam('keyword');
        $params['artist_id'] = $this->_getParam('artist_id');
        $params['album_id'] = $this->_getParam('albumId');
        $params['track_id'] = $this->_getParam('trackId');
        $params['backstage_category'] = $this->_getParam('backstage_category');
        $params['news_type_search'] = $this->_getParam('news_type_search');
        $params['date_from'] = $this->_getParam('date_from') ? $this->_getParam('date_from') : $this->_getParam('date_begin');
        $params['date_to'] = $this->_getParam('date_to') ? $this->_getParam('date_to') : $this->_getParam('date_end');
        $params['sort'] = $this->_getParam('sort');
        $params['dir'] = $this->_getParam('dir');*/
        
        //$select = $album->prepareSelect($params);       //utilisation de la fonction prepareSelect de la page NewModel
        $select = $album->select();
        $select->from('am_album');
        // $select->reset(Zend_Db_Select::COLUMNS);
        //$select->columns(array('am_album.*'));       //definition de la table ou prendre les donner
        //$select->distinct();
        
        
        $select->limit($nbresults, $start);
        //$select->where('id ='.$recherche);
        //$select->where('name = "'.$recherche.'"');
        $select->where('name LIKE   "'.$recherche.'"');
        
        //$select->where('name LIKE   ? ', $recherche);
        
        print $select or die(mysql_error());  
                
        $found = $album->fetchAll($select);

        
        
        $return['totalCount'] = $album->getCount($select);

        
        
        $columns = array('id','name');
        
     
        
        
        $return['records'] = $found->toArrayColumns($columns);
        
        $return['errors'] = $errors;
        $return['nberrors'] = $nberrors;
    
        $this->getResponse()->setHeader('Content-Type', 'text/javascript');
        Zend_Loader::loadClass('Zend_Json');
        $json = Zend_Json::encode($return);
        $this->getResponse()->setBody($json);

je vois remerci d'avance

Dernière modification par Mr.MoOx (16-11-2009 16:00:07)

Hors ligne

 

#2 13-11-2009 10:50:43

dev-k
Membre
Lieu: Barcelona
Date d'inscription: 18-07-2009
Messages: 77
Site web

Re: [Résolu] Problème clause LIKE

salut,

mets ton code entre les balises BBcode [ code] [ /code] (sans les espaces pour y voir plus clair s'il te plait.

Hors ligne

 

#3 13-11-2009 10:57:52

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

Re: [Résolu] Problème clause LIKE

@tsunami chups :
effectivement, mets les balises [ code]...

Sinon pour ton problème, ta ligne

Code:

$select->where('name LIKE   "'.$recherche.'"');

est fausse, en SQL, il faut mettre des ' et pas des " autour d'une string. Je ne suis pas certain que Zend_Db_Select gère correctement les like. Je pense qu'il faut passer par un Zend_Db_Expr.

Ca serait plutôt quelque chose du genre

Code:

$select->where(new Zend_Db_Expr("name like '%$recherche%'"));

A+, Philippe


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

Hors ligne

 

#4 13-11-2009 11:10:24

tsunami chups
Membre
Date d'inscription: 10-09-2009
Messages: 11

Re: [Résolu] Problème clause LIKE

Merci pour vos reponse

Pour les % de chaque coté je les avais mis entre temps et ca a regle mon problème de recherche mais j'ai une erreur

missing ) in parenthetical

mais je ne sais pas si cela vien de extjs ou de zend  vu que mon formulaire est en extjs et ma récupération en Json avec Zend

Hors ligne

 

#5 13-11-2009 11:33:26

tsunami chups
Membre
Date d'inscription: 10-09-2009
Messages: 11

Re: [Résolu] Problème clause LIKE

S'est bon mon probleme est resilut, j'ai cacher les parramettre $parms, mais je n'aurais pas du

voila merci a vous

Hors ligne

 

#6 13-11-2009 11:35:33

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

Re: [Résolu] Problème clause LIKE

pour ça ouvre ton url dans un navigateur et lit le JSON directement

Hors ligne

 

#7 13-11-2009 12:41:10

tsunami chups
Membre
Date d'inscription: 10-09-2009
Messages: 11

Re: [Résolu] Problème clause LIKE

Nnan mais s'est bon s'est regler ^^'

merci a vous

Hors ligne

 

#8 16-11-2009 15:59:49

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

Re: [Résolu] Problème clause LIKE

Quand un message est résolu merci d'éditer le premier message afin de rajouter [Résolu] dans le titre

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