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 listage d'une table => Erreur de selection de données


Sujet :

Zend_Db PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut Tuto listage d'une table => Erreur de selection de données
    Bonjour!

    Je suis également débutant ZF et j'ai un problème similaire à celui de cette discussion, sauf que j'ai essayé de corriger également de mon coté et ça plante aussi!
    Je n'arrive pas à trouver comment résoudre l'exception suivante :

    ___________________________
    exception 'Zend_Db_Exception' with message 'Erreur de selection de données : SELECT COUNT() FROM `utilisateurs`' in /home/manu/www/ZF170/application/models/AbstractTables.php:53 Stack trace: #0 /home/manu/www/ZF170/application/models/AbstractTables.php(89): AbstractTables->_fetchByPage(Object(Zend_Db_Select), NULL, NULL, Array, Array) #1 /home/manu/www/ZF170/application/models/TUser.php(30): AbstractTables->lister(Object(Zend_Db_Select), NULL, NULL, Array, Array) #2 /home/manu/www/ZF170/application/controllers/UserController.php(40): TUser->liste(NULL, NULL, Array) #3 /home/phpLibs/Zend/Controller/Action.php(503): UserController->listeAction() #4 /home/phpLibs/Zend/Controller/Dispatcher/Standard.php(285): Zend_Controller_Action->dispatch('listeAction') #5 /home/phpLibs/Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #6 /home/manu/www/ZF170/public/index.php(174): Zend_Controller_Front->dispatch() #7 {main}
    ___________________________________

    Visiblement la requete générée est fausse car normalement la clause COUNT() doit contenir quelque-chose?! Isn't it?!
    A savoir que pour le moment je n'ai appliqué que le fait de changer le nom de la methode liste par lister dans AbstracTable car j'avais le même soucis.
    J'ai beau retourner le code dans tout les sens je n'arrive à debuguer.
    Je sais pas si c'est vraiment utile de poster mon code étant donné qu'il est exactement le même que celui du tuto..... Mais je peux toujours si vous le souhaitez.

    P.S. Un grand merci à Julien Pauli et Guillaume Ponçon pour ce tuto et aussi pour leur bouquin qu'ils viennent de sortir et que je me suis empressé d'acheter, c'est ma bible de chevet!

    Malheureusement j'ai encore beaucoup de lacunes à corriger!

  2. #2
    Membre expérimenté Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Par défaut
    Le problème vient de ton COUNT avec rien dedans.

    Dans le tuto il y a cette ligne à un moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $select->from($this->_name,'COUNT('.implode(',',$this->_primary).')');
    Et je vois qu'apparemment tu as adapté le code du tuto vu que ta table s'appelle 'utilisateurs' alors que celle du tuto s'appelle 'membres', donc dans ta classe qui étend 'AbstractTables' (donc la classe où tu as définit ta table utilisateurs) vérifie que les clés primaires sont bien définies comme dans le tuto :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected $_primary = 'id';
    Et vérifie bien que les données sont identiques à celles de ta base (nom de la table, nom des clés primaires).

  3. #3
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Merci pour ton aide.
    J'ai bien vérifié dans le code et en fait je me suis aperçu qu'il y avait quelques petites fautes de frappe dans le code.....
    Ex: Dans 'try' il manque un tiret au niveau de $selectQuery>limit
    c'est balot!

    Je viens de découvrir Zend_Paginator et en fait j'essaie d'adapter ces scripts à Zend_Paginator mais à mon niveau c'est un boulot de titan!

  4. #4
    Membre expérimenté Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Par défaut
    Oui et il y a quelques autres fautes de frappe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $select->reset(Zend_Db_Select::COLUMNS)
                   >reset(Zend_Db_Select::FROM);
    C'est pour bien vérifier que tout le monde lit bien tout le code avant de le copier-coller.

    Mais ton problème est résolu ?

  5. #5
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Oui merci! ça marche parfaitement maintenant!
    Je le met en résolu ;-)

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 27/05/2013, 11h11
  2. Réponses: 7
    Dernier message: 11/07/2007, 14h26
  3. Mise à Jour d'une table via un Update (select)
    Par Arola78 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/09/2006, 15h59
  4. Réponses: 2
    Dernier message: 28/07/2006, 15h48
  5. Réponses: 2
    Dernier message: 20/05/2005, 11h18

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