Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-11-2009 11:13:51

abdelseo
Membre
Date d'inscription: 22-10-2009
Messages: 19

zend_db_select avec zend_paginator

Bonjour;
j'ai besoin de vous s'il vous plaît
voici mon code :

Code:

     $db         = Zend_Db_Table_Abstract::getDefaultAdapter();
              $list       = $db->select();
              $list->from('table-n')
                   
                   ->where('toto_id LIKE ?', '%'.$var1.'%')
                   ->where('tata_id LIKE ?', '%'.$var2.'%')
                   ->where('titi_id LIKE ?', '%'.$var3.'%')
                   ->where('tita_cat LIKE ?', '%'.$var4.'%');
             $db->query($list);
              $paginator  = Zend_Paginator::factory($list);
              $paginator->setItemCountPerPage(4)
                        ->setPageRange(3)
                        ->setCurrentPageNumber($this->_getParam('page',1));

les variable je les récupère via une formulaire j'ai pas de souci a ce niveau par contre je cherche a passer ses variable aux zend_paginator pour offrir quelques critère de recherche à l'utilisateur je vois pas ou est le problème j'ai aucun exception par contre mon champ de recherche ne me sort pas les résultat selon les critères de recherches.

Hors ligne

 

#2 25-11-2009 13:20:21

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: zend_db_select avec zend_paginator

Voici un bout de code comme exemple.

Dans le contrôleur

Code:

.....
$pa = new mqualPA ( );// mqualPA est le nom de la classe de mon modèle
              
$select=$pa->getPAActions ($id_pa,$filtre,$username );// les paramètres passés sont récupérés à partir d'un formulaire pour construire la requête.

$page = Zend_Paginator::factory($select);
$page->setPageRange(10);
$page->setCurrentPageNumber($this->_getParam('page',1));
$page->setItemCountPerPage($this->_getParam('par',20));

$this->view->liste = $page;//Je pense qu'il manque dans ton code le passage du  résultat de ton $paginator à la vue

Dans la vue

Code:

foreach ($this->liste as $pa):
echo $pa['objet'].<br>;
echo .....

endforeach;

echo $this->liste;// affiche la pagination

J'espère que ça répond à ta question

Dernière modification par ziedb (25-11-2009 13:35:10)

Hors ligne

 

#3 25-11-2009 15:04:30

abdelseo
Membre
Date d'inscription: 22-10-2009
Messages: 19

Re: zend_db_select avec zend_paginator

déjà je vous remercie beaucoup pour ta réponse pour la vue tout marche bien j'arrive a affiché la pagination des pages par contre je crois que mon problème se situe au niveau de init()

Code:

public function init()
            {
              $request= $this->getRequest();
              $form = new Form_Rechercher();
              $this->view->TitrePage('titre de la page');
              $this->view->form=$form;
              if($request->isPost())
              {
                  if($form->isValid($this->_request->getPost()))
                  {
                        $tit        = "";
                        $reg        =$form->getValue('elem1');
                        $dep        =$form->getValue('elem2');
                        $cat        =$form->getValue('elem3');
                        $r          =$form->getValue('elem4');
                        $this->rechercherAction($var1="$r", $var2="", $var3="$reg", $var4="$dep", $categories="$cat");
                        
                  }
              }
              
            }

j'ai utiliser init() pour afficher le formulaire  sa marche bien mais une fois j'envoie les résultat après un              echo $var1.'-'.$var2.'-'.$var3.'-'.$var4.'-'.$var5.'</br>'; j'ai deux résultat une avec les valeur de formulaire et une avec des valeur vide de ce genre ---- puisque j'utilise - comme séparateur
j'ai l'impression que init renvoie les valeur deux fois a la fonction rechercher une avec les vrai valeur et une avec des valeur vide
j'espere que quelqu'un a une idée

Hors ligne

 

#4 25-11-2009 15:54:44

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: zend_db_select avec zend_paginator

Code:

 $this->rechercherAction($var1="$r", $var2="", $var3="$reg", $var4="$dep", $categories="$cat");

Je pense que l'écriture correcte est la suivante :

Code:

 $this->rechercherAction($r, "", $reg, $dep, $cat);

Hors ligne

 

#5 25-11-2009 18:04:10

abdelseo
Membre
Date d'inscription: 22-10-2009
Messages: 19

Re: zend_db_select avec zend_paginator

Merci pour tes réponses c'est très gentil les deux syntaxe marche bien mais  le tien est plus élégant d'ailleurs c'est ce que je viens de mettre par contre j'ai toujours le même problème est ce que le syntaxe where et like est fonctionnelle? je pense que j'ai quelques chose qui cloche au niveau de mon select surtout au passage des variables

Hors ligne

 

#6 25-11-2009 21:25:50

abdelseo
Membre
Date d'inscription: 22-10-2009
Messages: 19

Re: zend_db_select avec zend_paginator

bonsoir est ce que cet requette est valide:

Code:

$db         = Zend_Db_Table_Abstract::getDefaultAdapter();
              $list       = $db->select();
              $list->from('table-n')
                   
                   ->where('toto_id LIKE ?', '%'.$var1.'%')
                   ->where('tata_id LIKE ?', '%'.$var2.'%')
                   ->where('titi_id LIKE ?', '%'.$var3.'%')
                   ->where('tita_cat LIKE ?', '%'.$var4.'%');
             $db->query($list);

si quelqu'un a une meilleur solution s'il vous plait?

Hors ligne

 

#7 25-11-2009 21:38:30

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: zend_db_select avec zend_paginator

Fanchement j'utilise pas trop cette écriture.
Je pourrais peut être vous suggérer d'utiliser $db->quote($var) pour les chaines de caractères.

Hors ligne

 

#8 25-11-2009 22:27:03

abdelseo
Membre
Date d'inscription: 22-10-2009
Messages: 19

Re: zend_db_select avec zend_paginator

déjà merci pour vos réponse pour le $db->quote je vais essayer de me renseigner ailleurs sauf si ta un bout de code comme exemple
merci beaucoup ziedb

Hors ligne

 

#9 25-11-2009 22:55:58

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: zend_db_select avec zend_paginator

Pour $db->quote() essayez cette écriture

Code:

->where('toto_id LIKE ?', $db->quote('%'.$var1.'%') )

Sinon, j'ai un doute sur la manipulation de la requête et de son résultat. Essayez de réecrire ainsi (s'il y a un problème essayer avec le $db->quote()) :

Code:

$db         = Zend_Db_Table_Abstract::getDefaultAdapter();
$select       = $db->select()->from('table-n')
                                      ->where('toto_id LIKE ?', '%'.$var1.'%')
                                      ->where('tata_id LIKE ?', '%'.$var2.'%')
                                      ->where('titi_id LIKE ?', '%'.$var3.'%')
                                      ->where('tita_cat LIKE ?', '%'.$var4.'%');

$statement=$db->query($select);

// si tu as plusieurs lignes à récpérer
$list=$statement->fetchALL()
// s'il s'agit d'un seul enregistrement
$list=$statement->fetch()

Bon, l'idéal est de fournir un code complet de  rechercherAction ou au moins le bout de code qui utilise le résultat de cette requête

Hors ligne

 

#10 26-11-2009 10:13:49

abdelseo
Membre
Date d'inscription: 22-10-2009
Messages: 19

Re: zend_db_select avec zend_paginator

Merci encore une autre fois pour ton aide et ton soutien, pour le moment ça marche bien le code est fonctionnel le souci vient de mon analyse j'ai pas fait attention avec la  logique au niveau de la dernière where fallait la transformé en orwhere puisque la valeur est toujours null,
par contre je voulu opter pour ton code $db->quote et ça marche pas du tout néanmoins est ce que mon code est sécurisé

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