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] Problème avec les classes


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut [POO] Problème avec les classes
    Bonjour a tous j'ai un souci avec la portion de code suivante:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    <?php
     
    class languages_module
    {
     
    var $languages;
     
    function languages_module ()
    {
     
        $this->languages = array();
     
        }
     
     
     
     
        function call01 ()
        {
            $sql = "SELECT id, code FROM languages";
            $sgbd->query($query, $sql);
     
                while( $sgbd->fetch_row( $query, $row ) )
                {
                array_push($this->languages, array('id'=>$row['id'],'code'=>$row['code']) );         
                }
     
        }
     
     
        function call02 ()
        {
        }
     
        function getLanguages ()
        {
        return $this->languages;
        }
     
     
    }
     
    ?>

    voici ce qu'il se passe:

    je crée une classe $classe = new languages_module();

    ensuite j'apelle $classe->call01(); pour lire tous les languages dispos dans la base, les langues sont stockées dans un tableau var$languages

    puis plus tard j'utilise $class->getLanguages(); pour qu'il me donne les langues insérées.

    hors quelque chose de bizarre arrive:

    dans le constructeur mon tableau est déclaré vide "$this->lanaguages=array()..."

    dans call01() j'ai vérifié les langues sont bien insérées, en faisant un print_r j'ai pu voir que tout etait ok

    mais en apellant getLanguages() il ne me retourne rien, seulement un tableau vide ( comme dans le constructeur )

    j'ai testé en initialisant un tableau non vide dans le constructeur et la getLanguages() me retourne ce que j'ai déclaré comme ci call01() n'avait rien modifé !!!

    si vous avez des idées pour résoudre cela merci

  2. #2
    Rédacteur

    Homme Profil pro
    Geek entrepreneur
    Inscrit en
    Novembre 2004
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Geek entrepreneur

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 224
    Points : 2 373
    Points
    2 373
    Par défaut
    Je suppose que tu ne montres pas tout ton code (sinon $sgbd ne serait jamais initialisé)
    Dans ton cas, j'aurais d'ailleurs plutot utilisé la notation
    $array[] = $var;

    Ce qui pourrait nous intéresser c'est aussi le bout de code ou t'appelles tout ca.

  3. #3
    Membre habitué Avatar de nesbla
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 220
    Points : 139
    Points
    139
    Par défaut
    Si tu est en PHP 5, le contructeur est __construct() et non le nom de la classe comme en java par exemple.
    ··· Champion des excuses bidons ··· Je viens d'apprendre que les ventes de voitures ont encore baissé de 7% en France. Y'en a marre de ces pirates qui téléchargent les voitures sur internet !

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    en effet la notation languages[] = $var est celle que j'utilisais avant mais ca ne fonctionnait pas non plus.

    $sgbd est une autre classe mais elle fonctionne bien.

    note: j'ai remarqué que sous PHP 5 ca marchait...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    je suis en php 4 donc pas besoin de __construct

  6. #6
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    $row n'est pas initialisé
    de plus il faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function call01 ()
        {
    global $sgbd;        
     
    $sql = "SELECT id, code FROM languages";
            $sgbd->query($query, $sql);
     
                while( $sgbd->fetch_row( $query, $row ) )
                {
                array_push($this->languages, array('id'=>$row['id'],'code'=>$row['code']) );         
                }
     
        }
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    merci wamania mais $row et $sgbd fonctionnent très bien.
    j'ai testé je récupère bien toutes les valeurs.

    $this->languages est bien remplit !

  8. #8
    Rédacteur

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 695
    Points : 1 071
    Points
    1 071
    Par défaut
    alors la vérité est ailleurs
    Articles sur developpez.com
    - Gestion des exceptions avec PHP5
    - Chiffrement et hash en PHP contre l'attaque Man in the middle
    - Aedituus - Espace membre sécurisé en PHP5

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par hugo123
    Ce qui pourrait nous intéresser c'est aussi le bout de code ou t'appelles tout ca.
    Pour moi la véritée est ici. Encore une histoire de référence...

Discussions similaires

  1. [POO] Problème de langue avec la classe phpmailer
    Par sansouna24 dans le forum Langage
    Réponses: 10
    Dernier message: 05/01/2012, 17h14
  2. [POO] PHP5 : Problème avec les classes
    Par fleur_de_rose dans le forum Langage
    Réponses: 9
    Dernier message: 06/05/2006, 20h09
  3. Réponses: 3
    Dernier message: 18/04/2006, 23h49
  4. [Eclipse] [VE] Créer des menus avec les classes SWT de VE
    Par jbcorens dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 30/08/2005, 13h25
  5. Réponses: 7
    Dernier message: 05/10/2004, 14h44

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