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 :

[POO] attribut Array


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut [POO] attribut Array
    Bonjour,

    J'utilise une classe utilisateur, et une classe liste d'utilisateurs.
    Ma classe liste d'utilisateurs possède 3 attributs, un tableau et une instance ma classe qui gere les requetes sql et un indice pour le bout de code de remplissage du tableau.

    Voici le code concerné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $this->qm->query($requete); // effectue un mysql_query
    			$tmp_user = new Utilisateur();
    			while($tmp = $this->qm->toArray()) { // effectue un mysql_fetch_array
    				$tmp_user->getUser($tmp[0]);
    				echo $tmp[0] . "<br/>";
    				$this->utilisateurs[$this->i] = $tmp_user;
    				$this->i++;
    			}
    			$this->i = 0;
    La création de l'user se fait normalement mais je ne sais pas pourquoi quand je fais $this->utilisateurs[$this->i] = $tmp_user; le nouvel user est mis au rang i et écrase aussi les user contenu dans les rangs précédents du tableau.

    J'ai aussi écrit ce code avec la fonction array_push() j'obtient le même résultat.

    Je ne comprend vraiment pas le "phénomene", quelqu'un peut il m'aider ?

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Par défaut
    Déjà je doute fortement que $this->qm->toArray() fasse ce que tu penses qu'elle fait, ou alors elle est très, très mal nommée.

  3. #3
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut
    Sisi la methode toArray fait un mysql_fetch_array(), c'est sur et certain.

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Par défaut
    OK donc nommage horrible.

    Fais un var_dump($tmp_user) et un var_dump($this->utilisateurs) et tu verras bien ce qui cloche.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bon, le tout est de savoir ce qu'il y a dans quelle variable. Donc je te conseille un var_dump de this, qui te donnera le contenu de tous les attributs de ton objet. (de préférence avant l'ajout de $tmp_user dans le tableau...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    var_dump($this);
    echo '</pre>';
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre confirmé Avatar de Momodedf
    Inscrit en
    Juillet 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2007
    Messages : 246
    Par défaut
    J'ai fait ce que vous m'avez dit tout les deux (d'ailleurs grand merci Celira pour la balise pre jusqu'à maintenant je galerais pour lire mes var_dump).

    Et ça confirme ce que j'avais remarqué.

    Lorsque je rajoute une entrée dans mon tableau, celle-ce se rajoute à la fin et écrase toutes les entrée précédentes.
    Et je comprend vraiment pas pourquoi.

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Alors 1) quelle est la valeur de i avant l'ajout (genre tu ne remplacerais pas infiniment le même élément) et 2) utilisateurs est-il bien un tableau ? (on sait jamais, c'est déjà arrivé..)

    array_push ne fonctionne pas non plus ?

    De rien pour les balises, je galérais tout autant avant...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

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

Discussions similaires

  1. [POO] Attribut et fonction : question sur un exemple
    Par shinyfabio dans le forum Général Python
    Réponses: 4
    Dernier message: 07/03/2012, 09h35
  2. [PHP 5.0] [POO] Attribut de classe
    Par masbaye_noubadoum dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2010, 15h30
  3. [POO] Attributs et mot clé "final"
    Par marmarnassouf dans le forum Langage
    Réponses: 5
    Dernier message: 13/04/2009, 03h22
  4. [POO] attribut protege , modifiable ?
    Par junior68 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 08/08/2008, 12h00

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