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 :

Tuto : Création d'un processus de listage du contenu d'une table -> problème


Sujet :

Zend_Db PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Tuto : Création d'un processus de listage du contenu d'une table -> problème
    Bonjour,
    je découvre Zend Framework depuis peu.
    Depuis une semaine, je travaille à partir du tutoriel de Julien Pauli : "Création d'un processus de listage du contenu d'une table" -> merci à lui.
    Je l'ai adapté pour interroger une base PostgreSQL.
    La première étape d'affichage du tableau fonctionne très bien (après quelques déboguage : limitPage...).
    Par contre dès que je demande un tri, j'obtiens un message d'erreur que je n'arrive pas à interpréter pour corriger le problème.
    J'ai regardé dans le forum mais je ne vois rien à ce sujet.
    J'ai l'impression que c'est le passage et la récupération des paramètres dans l'URL qui ne se fait pas correctement.
    Quelqu'un pourrait-il m' aider pour faire fonctionner ce tableau triable ?

    Je ne sais pas si ça peu aider mais voici mon message d'erreur :
    ---
    Fatal error: Uncaught exception 'Zend_Db_Exception' with message 'Erreur de selection de données' in C:\wamp\www\test\application\models\AbstractTables.php:62 Stack trace: #0 C:\wamp\www\test\application\models\AbstractTables.php(88): AbstractTables->_fetchByPage(Object(Zend_Db_Select), 'login', 'desc', Array, Array) #1 C:\wamp\www\test\application\models\MembresTable.php(12): AbstractTables->liste(Object(Zend_Db_Select), 'login', 'desc', Array, Array) #2 C:\wamp\www\test\application\controllers\IndexController.php(26): MembresTable->lister('login', 'desc', Array) #3 C:\wamp\www\test\library\Zend\Controller\Action.php(498): IndexController->listerAction() #4 C:\wamp\www\test\library\Zend\Controller\Dispatcher\Standard.php(242): Zend_Controller_Action->dispatch('listerAction') #5 C:\wamp\www\test\library\Zend\Controller\Front.php(932): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #6 C:\wamp\www\test\index.php(39): Zend_Controller_Front->dispatch( in C:\wamp\www\test\application\models\AbstractTables.php on line 62
    ----

    Merci par avance,
    Nicolas.

  2. #2
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Poste ton code si tu veux qu'on puisse t'aider.
    Cordialement.
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Quelques éléments de réponse...
    En fait à force de chercher dans le code et d'essayer de comprendre les interactions entre les class, vues... Je me suis rendu compte d'un certain nombre de coquilles dans le tutoriel.
    Celles-ci sont peut-être évidentes pour quelqu'un qui maîtrise la programmation sous Zend Framework, mais c'est loin d'être mon cas.

    A toutes fins utiles, je liste ci-dessous quelques points qui m'ont paru bloquants (ça n'engage que moi) :

    1 - dans class MembresTable, je n'ai pas pu utiliser le même nom pour la fonction que celle de la class AbstractTables car elles n'ont pas le même nombre d'arguments. Je l'ai donc appeler lister au lieu de liste

    2 - toujours dans class MembresTable, utilisant PostgreSQL et nom MySQL et ma base n'étant pas sous le schéma public, j'ai rajouté une variable protected $_schema
    Le select se faisant :
    $select=$this->$_db->select()->from($this->_name,array('champ1','champ2',...),$this->_schema);

    3 - Dans AbstractTable au niveau de la fonction _fetchByPage, il est indispensable d'enlever la clause ORDER à $select par $select->reset(Zend_Db_Select::ORDER); avant de faire la requête 'COUNT' sinon au premier tri la syntaxe sql générée est fausse. (C'est cette erreur du message précédent).

    4 - Toujours dans _fetchByPage on limite la requette $selectQuery par une fonction limit qui n'existe pas (ou plus). J'ai utilisé : $selectQuery->limitPage($page,$nombre_enregistrements);
    Ceci complète la requête par un LIMIT et un OFFSET.

    Voilà rapidement ce que j'ai relevé en espérant que je n'ai pas dit trop de bétises et que ça puisse aider d'autres personnes.
    A+

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/01/2009, 17h03
  2. Questions à propos de tuto création panier
    Par jcoutsit dans le forum E-Commerce
    Réponses: 8
    Dernier message: 27/08/2008, 18h07
  3. Création de n processus
    Par ould64 dans le forum C
    Réponses: 1
    Dernier message: 01/05/2008, 09h04
  4. création de plusieurs processus
    Par Paul75 dans le forum Linux
    Réponses: 5
    Dernier message: 29/01/2007, 11h22

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