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

Langage PHP Discussion :

affiche erreur tableau php class


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut affiche erreur tableau php class
    bonjour,
    voila j ai deux messages d erreur quand j utilise mes fonctions de ma classe php:
    le mot Array s' affiche pour cette fonction:

    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
    public static function findAll(){
    	/****requete recuperer tout les infos des categorie******/
    	$req ="SELECT * from ".self::TB_PREFIX."categorie"or die ('Erreur : '.mysql_error());
    	/******recupere resultat dans variable $res*****/
    	$res = mysql_query($req);
    	/******création tableau variable $ret******/
    	$ret = array();
    	$i = 0;
    	/********Retourne une ligne de résultat MySQL sous la forme d'un objet dans variable $data*******/
    	while($data = mysql_fetch_object($res)){
    	$ret[$i] = new categorie ($data->titre,$data->description,$data->estDansMenu,$data->estDansContact,$data->estVisible);
    						$i++;
    						}
    						if (isset($ret[0])) return $ret;
    						else return null;
    						}
    et l erreur : Object of class Categorie could not be converted to string in C:\wamp\www\AchatEnfolie2\include\navigation.php on line 10

    quand j appelle la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static function findById($id){
    	$req ="SELECT * from ".self::TB_PREFIX."categorie where id=".$id."";
    	$res = mysql_query($req);
    	if($data = mysql_fetch_object($res))return new categorie(
    	$data->titre,
        $data->description,
                            $data->estDansMenu,
                            $data->estDansContact,
                            $data->estVisible
                           );
     
     
    						else return null;
    						}
    voici les apppelsdes deux fonctions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    $objet=new categorie;
     
    echo ('<li>');
    echo $objet->findAll();
    echo $objet->findById(2);
     
     
    echo('</li>');
     
     
    ?>
    merci de vos reponses.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req ="SELECT * from ".self::TB_PREFIX."categorie"or die ('Erreur : '.mysql_error());

    Tu es sûr de pas avoir déjà une erreur dans ta seconde ligne ?? Ton or exit est mal placé... et dans le contexte il ne veux pas dire grand chose... (si tu avais une chaine vide, il te renverais une jolie erreur sql qui correspondrait à rien...)

    Sinon ce qu'il te dit c'est qu'il a des difficultés à transformer un objet en string....


    Patouche

    l'objet en version static... parfois, ça me rend triste, mais bon, pourquoi pas...

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    pour le or die() il ne met aucune erreur, mais les fonctions je ne trouve pas pk il m affiche ca? merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    Si je reprends tes premières lignes, il faudrait que tu écrivent quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public static function findAll(){
    	/****requete recuperer tout les infos des categorie******/
    	$req ="SELECT * from ".self::TB_PREFIX."categorie";
    	/******recupere resultat dans variable $res*****/
    	$res = mysql_query($req) or die ('Erreur : '.mysql_error());
    ....
    Ca aurait plus de sens

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    merci mais j ai tj les erreur qui appraissent.
    VOICI CE que l on m a repondu ailleur :
    La première fonction findAll retourne soit un Array, soit NULL.
    Ce n'est pas un String donc, ne peut etre affiché, c'est pour cela que php affiche "Array".
    Pour la fonction FindById($id), elle retourne soir un objet Catégorie soit NULL.
    Si ta classe catégorie n'implémente pas une fonction __toString(), un appelle du type String sur cette classe engendrera une erreur !
    Il faut donc que tu définisse une fonction __toString() qui formatera l'affichage des données.

    donc je fait ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      public function __toString()
        {
            return $this->titre;
    		return $this->description;
        }
    on m a dit de faire:
    Pour le Array, tu peut faire une fonction de formattage avec un ptit foreach {} pour afficher tout ça

    mais je ne sais pas trop comment faire je reprends le php depuis peu.
    merci

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Par défaut
    Oui, tu peux rajouter une méthode toString dans ta classe categorie. Mais, personnelement, je te déconseille de transformer un objet directement en String. Normalement, ça n'a pas de raison d'être. toString resort une chaine de caractère. Donc, il vaut mieux que ce que tu retourne soit une chaine de caractère... sinon

    De plus, je suppose que ton problème se situe ailleurs... peut être dans ta classe categorie. Parce que ce que tu as là, semble relativement "valide".


    Cordialement,
    Patouche

  7. #7
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    trouver merci!!

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

Discussions similaires

  1. Afficher un tableau php de N dimensions dans un arbre
    Par siddh dans le forum Téléchargez
    Réponses: 0
    Dernier message: 05/10/2011, 09h12
  2. Afficher un tableau php de N dimensions dans un arbre
    Par siddh dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 0
    Dernier message: 15/02/2011, 19h27
  3. Afficher un tableau php de N dimensions dans un arbre
    Par cuhbe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/07/2009, 13h56
  4. [FPDF] Afficher un tableau php avec fdpf
    Par sami69 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 10/04/2006, 13h47
  5. [Tableaux] afficher le contenu d'un tableau php
    Par moons dans le forum Langage
    Réponses: 9
    Dernier message: 08/02/2006, 15h12

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