Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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
$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
@tsunami chups :
effectivement, mets les balises [ code]...
Sinon pour ton problème, ta ligne
$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
$select->where(new Zend_Db_Expr("name like '%$recherche%'"));
A+, Philippe
Hors ligne
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
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
pour ça ouvre ton url dans un navigateur et lit le JSON directement
Hors ligne
Nnan mais s'est bon s'est regler ^^'
merci a vous
Hors ligne