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

Bibliothèques et frameworks PHP Discussion :

[PEAR][DB] Unsupported operand types in Renderer.php


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    En attente de confirmation mail
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 20
    Points
    20
    Par défaut [PEAR][DB] Unsupported operand types in Renderer.php
    Bonjour,

    Je genere des tableaux avec Pear à partir d'une base de données mysql.

    config
    php 4
    Version du serveur: 5.0.27-community-nt
    phpMyAdmin - 2.9.2

    Pour cela j'utilise le code qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    $requete = "SELECT  id_offre_materiel, COUNT(id_offre_materiel) AS nb_demande FROM correspondance_potentielle GROUP BY id_offre_materiel";
     
    $champs = array("id_offre_materiel"=>"OFFRE", "nb_demande"=>"Nombre de demande");
     
    $DSN = "mysql://root:root@localhost/maBase";
    $database =& MDB2::connect($DSN,array('debug' => 8,'result_buffering' => false)); 
    $datagrid =& new Structures_DataGrid_Extension($n); /* n enregistrements par page */
     
    /* Couplage */
    $datagrid->bind($requete, array('dbc' => &$database));
    $database->disconnect();
    $table = new HTML_Table();
     
    /* Génération des colonnes (on omet "id") : ( a faire avant la pagination ) */
    $datagrid->generateColumns($champs);
    /* On utilise fill() à la place de render() pour remplir le tableau avec les données : */
    $datagrid->fill($table);
    /* Affichage des liens de pagination */
    $pagination = $datagrid->render("Pager");
    $table ->display();
    J'obtiens l'erreur suivante :
    Fatal error: Unsupported operand types in C:\wamp\php\PEAR\Structures\DataGrid\Renderer.php on line 500

    J'ai testé la requete directement sur la base, elle fonctionne.
    Mon objet datagrid comprend bien les reponses à la requete.
    A la ligne 500 de Renderer.php j'ai un attribut de renderer : _totalRecordsNum de type
    object(mdb2_error) : ["message"]=> string(25) "MDB2 Error: not supported" au lieu d'être un nombre.

    PS : Les requetes plus simple du type "SELECT id_offre_materiel FROM correspondance_potentielle" ne generent pas d'erreur (je sais pas si ça peut aider)

    Merci d'avance pour votre aide

  2. #2
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut oubli?
    $datagrid =& new Structures_DataGrid_Extension($n);


    ton $n sauf erreur de ma part, n'est défini null part ?

    olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  3. #3
    En attente de confirmation mail
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    C'est un oubli
    $n =10
    ( le bout de code est à l'interieur d'une fonction par exemple $requete est un parametre qui peut changer)
    Tout marche bien avec des requetes simples
    mais le pb ce produit lorsque j'utilise des requetes contenant
    GROUP BY ou/et DISTINCT
    Encore un indice : j'ai pas ce bug lorsque je test sur un serveur linux...

  4. #4
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut
    Bonjour,

    D'après ce que tu dis si cela tourne sous linux, cela doit venir d'une fin de fichier chez wido.. . J'ai eu le mème pb avec spreadsheet_excel, ou j'ai fait l'install sous linux et rappatrié le projet sous windows/wamp .

    j'ai pris tous les fichiers de la bibli pear qui me posait un pb et j'ai enlevé les fin de fichier genre ?> espace caché ....

    et tout est rentré dans l'ordre, le message était aussi bizarre.

    ce qui m'a mis la puce à l'oreille c'est un header already send ... dans le message d'erreur.

    Essai , sinon si j'ai le temps je vais pomper ton source et l'adapter pour voir.

    olivier
    Architecte destructurant,
    be cool, be free

    Il nous reste Debian bien sûr

  5. #5
    En attente de confirmation mail
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 20
    Points
    20
    Par défaut
    Apparrement ce n'est pas un probleme d'espaces cachés.

    J'ai testé sur linux en local ça ne marche pas alors que ça marche sur un serveur.
    Puis apres un debug intensif à la main je suis arrivé à trouver une options différentes de MDB2 entre local et serveur distant:
    'result_buffering' qui est à false lorsque ca ne fonctionne pas, et à vrai lorsque ça fonctionne au momment de compter le nombre de lignes de réponses à afficher ( voir méthode &_wrapResult (ligne 2541) dans PEAR/MDB2.php)
    Mais mettre cette option à vrai enleve l'erreur fatal mais enleve l'affichage des resultat ( ce qui n'arrange pas mon affaire)

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/08/2013, 11h53
  2. Réponses: 6
    Dernier message: 15/05/2013, 13h06
  3. [PHP 5.2] Fatal error: Unsupported operand types
    Par ju0123456789 dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2010, 18h07
  4. Réponses: 2
    Dernier message: 25/03/2009, 21h40
  5. [MySQL] Fatal error: Unsupported operand types in..
    Par Sekigawa dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/03/2008, 10h58

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