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 :

problème entre le fetchAll() et et le to Array()


Sujet :

Zend_Db PHP

  1. #1
    Membre confirmé Avatar de Thauglor
    Homme Profil pro
    Ingénieur conception et développement
    Inscrit en
    Avril 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur conception et développement
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2006
    Messages : 81
    Par défaut problème entre le fetchAll() et et le to Array()
    Bonjour, j'avoue ne pas comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $select_utilisateur=$db->select()
    			->from("Utilisateur")
    			->where('MATCH Pseudo, NomU, PrenomU1, PrenomU2, PrenomU3, CommentaireU) AGAINST (\''.$words.'\' IN BOOLEAN MODE)!=0')
    			->order('MATCH (Pseudo, NomU, PrenomU1, PrenomU2, PrenomU3, CommentaireU) AGAINST (\''.$words.'\') DESC');
    			$q_utilisateur=$select_utilisateur->query();
     
    $tab_test=$q_utilisateur->fetchAll()->toArray();
    //cette ligne provoque l'erreur :
    /*Fatal error: Call to a member function toArray() on a non-object in /home/projetfac/public_html/dev_content/application/controllers/SearchengineController.php on line 57*/
    En cherchant bien dans les tutos, je me suis rendu compte que cettte action était normalement possible.

    En utilisant un foreach dans le document view correspondant, on arrive bien a afficher le résultat de cette requête.

    Si quelqu'un peut m'aider à comprendre d'où vient l'erreur (est ce le match against la cause?)

    Merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Par défaut
    Je crois que la méthode toArray() fonctionne si tu utilise une Zend_Table pour ton select et non un Zend_db.

    Zend_Table->select() te renvoie effectivement un objet Zend_RowSet et cet objet implémente la méthode toArray().

    Sinon tu peux peut-être t'en sortir en utilisant les autres modes de 'fetch' : documentation fetch pour récupérer dans un format qui t'arrangera le plus.

    A+

  3. #3
    Membre expérimenté Avatar de BlackSmith
    Inscrit en
    Mars 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2008
    Messages : 181
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $select_utilisateur=$db->select()
    			->from("Utilisateur")
    			->where('MATCH Pseudo, NomU, PrenomU1, PrenomU2, PrenomU3, CommentaireU) AGAINST (\''.$words.'\' IN BOOLEAN MODE)!=0')
    			->order('MATCH (Pseudo, NomU, PrenomU1, PrenomU2, PrenomU3, CommentaireU) AGAINST (\''.$words.'\') DESC');
     
     
    $tab_test= $db->fetchAll($select_utilisateur);
    Voila, cette methode doit fonctionner, tu n'a pas besoin de "toArray();" car $db->fetchAll te retourne directement un tableau.

  4. #4
    Membre expérimenté
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Par défaut
    Hello,
    J'ai strictement rien compris à ce que tu voulais vraiment \o/ mais j'vais essayer d'expliquer XD

    la methode fetchAll s'execute de base sur un objet de type je sais plus trop quoi ( Zend_Db_Adapter peut être bien ou alors Table ), et te permet d'executer une requete sur une table précise, pour te retourner des objets correspondant ( dans un Zend_Db_Table_Rowset, contenant des Zend_Db_Table_Row )

    Le toArray quant à lui s'applique à un Zend_Db_Table_Row, et te permet de transformer cet objet un peu gore en un tableau contenant seulement les données

    Bonne chance, tout d'même :o

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

Discussions similaires

  1. problème entre IE et Mozilla firefox
    Par bilb0t dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/06/2005, 17h07
  2. Problème entre Delphi7 et Crystal Report 9
    Par claude dans le forum Bases de données
    Réponses: 5
    Dernier message: 25/11/2004, 16h42
  3. Problème entre IB 6.0 et Access 2000
    Par Polux63 dans le forum InterBase
    Réponses: 3
    Dernier message: 19/04/2004, 10h34
  4. Problème entre Dev-c++ et Borland c++ compiler 5.5
    Par Argonz dans le forum Dev-C++
    Réponses: 6
    Dernier message: 21/10/2003, 16h21
  5. [ODBC] Problème entre access et ODBC
    Par StephCal dans le forum Access
    Réponses: 4
    Dernier message: 09/07/2003, 16h47

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