Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour a tous! Encore moi! (oh non pas lui!) lol
J'ai un petit turlupinement... Ouais c'est possible que ce soit pas français... M'enfin en tout cas je voudrais savoir comment on peut traduire un LIKE d'une requête sql... Parce que j'ai une requête et j'ai testé avec PhpMyAdmin, et elle marche seulement s'il y a un LIKE, et non un '=' ...
Donc je demande votre aide pour m'éclairer sur ce petit soucis ^^
Bonne journée a tous
Hors ligne
Bah suffit de mettre un LIKE a la place du '=' lol
je vois pas le probleme, sinon mets nous le code de la requete ...
Hors ligne
Voila le code
$select = $news->select() ->from('news') ->where($news->news = "%".$form->getValue('recherche')."%");
Et si je met un LIKE a la place de mon '=' il me met :
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\zfmvc-projetIntra\application\controllers\AdminController.php on line 320
Et ma ligne 320 est juste au dessus ^^
Hors ligne
Ça marcherait peut-être mieux comme ça.. :x
$select = $news->select() ->from('news') ->where($news->news .'LIKE "%'.$form->getValue('recherche').'%"');
Hors ligne
Chim a écrit:
Voila le code
Code:
$select = $news->select() ->from('news') ->where($news->news = "%".$form->getValue('recherche')."%");Et si je met un LIKE a la place de mon '=' il me met :
Code:
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\zfmvc-projetIntra\application\controllers\AdminController.php on line 320Et ma ligne 320 est juste au dessus ^^
simplement parcequ'avec ton = ton code est déjà faux
$select = $news->select() ->from('news') ->where($news->news ."= %".$form->getValue('recherche')."%");
tu faisait une affectation au membre news de ton objet news
mais je déconseille cette écriture
$select = $news->select() ->from('news') ->where( $db->quoteInto(" ? = %:recherche%", $news->news) ); $select->execute(array('recherche' => $form->getValue('recherche')));
et plus sur et propre
A+JYT
Dernière modification par sekaijin (08-01-2009 14:07:36)
Hors ligne
Je vous remercie de vos réponses et m'excuse de mon étourdissement...
Mais pour la dernière solution de sekaijin, à quoi correspond le $db?
Hors ligne
Chim a écrit:
Je vous remercie de vos réponses et m'excuse de mon étourdissement...
Mais pour la dernière solution de sekaijin, à quoi correspond le $db?
$db = $news->getAdapter();
Hors ligne
Erf, je vais passer pour un lourd, mais j'ai encore une erreur qui me dit que :
Message: Unrecognized method 'execute()'
Et comme je suis en train d'utiliser des methodes que je n'assimile pas forcément, j'ai du mal à voir ce qui cloche
Hors ligne
Hello,
Si je me rappelle sekaijin est en 1.0.4, donc en 1.7.2 il faut faire :
$select = $news->select() ->from('news') ->where($news->getAdapter()->quoteInto(" ? = %:recherche%", $news->news)); // et $stmt = $news->getAdapter()->query(array('recherche' => $form->getValue('recherche'))); // pour un stat // ou $rows = $news->getAdapter()->fetchAll(array('recherche' => $form->getValue('recherche'))); // pour un rowset
Hors ligne
Bonjour,
Je viens d'essayer ce que tu m'as écris, mais ça ne marche pas, il ne reconnait pas le $news de la clause where()
J'ai pas trop compris pourquoi, mais il ne l'aime pas...
Notice: Undefined property: News::$news in C:\wamp\www\zfmvc-projetIntra\application\controllers\AdminController.php on line 323 Warning: preg_split() expects parameter 2 to be string, array given in C:\wamp\www\zfmvc-projetIntra\library\Zend\Db\Statement.php on line 124 Warning: Invalid argument supplied for foreach() in C:\wamp\www\zfmvc-projetIntra\library\Zend\Db\Statement.php on line 128 Warning: PDO::prepare() expects parameter 1 to be string, array given in C:\wamp\www\zfmvc-projetIntra\library\Zend\Db\Statement\Pdo.php on line 65 Fatal error: Call to a member function setFetchMode() on a non-object in C:\wamp\www\zfmvc-projetIntra\library\Zend\Db\Statement\Pdo.php on line 426
Il y a peut etre quelque chose que j'ai oublié de configurer?
Hors ligne
Hello,
Fais en sorte que $news->news vaut qqch.
A+
Hors ligne
Bon en fait c'était bien le $news qui foirait, mais pourquoi?
J'ai tout repris depuis le début, et maintenant ça fait ce que je voulais
Je vous met le code, même s'il n'est pas très académique, je m'en fiche, puisqu'il fonctionne!
function rechercheAction(){ $this->view->title = "C'est le titre!"; $form = new RechercheForm(); $form->setAction('recherche'); $form->setMethod('POST'); $form->submit->setLabel('Rechercher'); $this->view->form = $form; if ($this->_request->isPost()) { $formData = $this->_request->getPost(); if ($form->isValid($formData)) { $recherche = '%'.$form->getValue('recherche').'%'; $d = new News(); $select = $d->select() ->where('news LIKE ? ', $recherche); $this->view->news=$d->fetchAll($select); $this->view->cb = count($d->fetchAll($select)); } } }
Edit: Comment ai-je pu oublié??
Un grand merci à vous pour vous être autant penché sur le sujet MERCI !
Dernière modification par Chim (09-01-2009 16:03:27)
Hors ligne