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 :

Passer de PHP a POO [PHP 5.0]


Sujet :

Langage PHP

  1. #21
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Elles correspondent aux paramètres de connexion et sont déclarées dans fonction.php

    Elles doivent etre declarées dans index.php c'est ca ?

  2. #22
    Membre actif Avatar de stephanegib2
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 152
    Points : 233
    Points
    233
    Par défaut
    Tu a deux possibilités.
    Soit tu les déclare dans la classe MaBase, mais dans ce cas tu ne les passe pas à la méthode comme ça.
    Soit tu les déclare dans index.php mais tu les défini dans index.php

    Solution 1
    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
     
    class MaBase
    {
     
    //Attributs 
    public $conn = NULL;
    public $hostname="localhost";
    public $dbname="lcesa";
    public $username="root";
    public $pw="lcesa";
     
    //---------------Méthodes---------------
     
    	//Constructeur
    	public function __construct()
    	{
    		$this->connect();
    	}
     
    	//Ouverture BDD
    	public function connect()
    	{
    		try {
    				$this->conn = new PDO ("mssql:host=$this->hostname;dbname=$this->dbname","$this->username","$this->pw");
    		}
    		catch( PDOException $Exception ) {
    				echo $Exception->getMessage();
    		}
    	}
    }
    Solution 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $hostname="localhost";
    $dbname="lcesa";
    $username="root";
    $pw="lcesa";
     
    $base = new MaBase($hostname, $dbname, $username, $pw);
    Mais avant de continuer sur ton code, essais de combler tes lacunes niveau POO.

  3. #23
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    J'ai l'impression d'avoir deja fais ca masi euh les messages d'erreurs ne bougent pas


    ----

    Bah en faite je me sers de ce code pour m'exercer et faire rentrer dans ma p'tite tête le POO ca fais 3 semaines que je lis des doc interminables que je suis des tutos mais la j'en es un peu marre je ne comprend rien avec leurs exemples
    Du coup je me dis que ne m'exercant directement sur mon code alors je comrpednrais mieux

  4. #24
    Membre actif Avatar de stephanegib2
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 152
    Points : 233
    Points
    233
    Par défaut
    Oui mais je pense qu'il te manque quelques notions de base pour pouvoir comprendre le code.

    Par exemple sur la porté des variables, sur la visibilité, les valeurs de retour ...

    Normalement tu devrais pouvoir débuggé ce code, il est très basique.

  5. #25
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Bah les variables sont soit privées soit publiques, le -> sert a invoqué si je puis dire des methodes sur un objet, $this represente l'objet qu'on utlise,et valeur de retour bah un tableau par exemple ...
    j'dis des betises ?

    En faisant ceci sur index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $base = new MaBase($hostname='localhost', $dbname='lcesa', $username='root', $pw='lcesa');
    Je n'ai plus d'erreur concernant mes variables,
    Par contre celle sur la function prepare persiste alors j'ai regardé plus attentivement sur le manuel de php et j'ai essayé ceci mais en vain :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	public function doSelect($conn)
    	{
    		$sql = "SELECT * FROM technicien";
    		$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
            $sql->execute();
            return $sql->fetchAll();
    	}

  6. #26
    Membre actif Avatar de stephanegib2
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 152
    Points : 233
    Points
    233
    Par défaut
    C'est bon tout fonctionne ?

  7. #27
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Pas du tout ^^
    Je suis en pleine recherche de la fonction prepare qui ne va pas mais rien a faire je ne comprend pas =)
    Tout vient a point a qui sait attendre du coup je continue de chercher ca finira bien par payer

  8. #28
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    il y a quelques erreurs au niveau de la classe MaBase:

    au lieu de:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->conn = new PDO ("mssql:host=$this->hostname;dbname=$this->dbname","$this->username","$this->pw");

    il faut plutôt écrire:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	$this->conn = new PDO ("mysql:host={$this->hostname};dbname={$this->dbname}",$this->username,$this->pw);
    comme les tableaux, les attributs d'une classe dans une chaîne de caractères doivent être entourés d'accolades.


    Voici une des implémentions de ta classe MaBase quoique un pattern singleton est tout à fait conseillé dans ce cas préçis:

    Code php : 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
     
     
     
    class MaBase
    {
     
    //pourquoi des attributs ? des constantes de classe ne sont-elles pas plus adaptées pour ton cas?
    //Attributs 
    public $conn = NULL;
    public $hostname="localhost";
    public $dbname="lcesa";
    public $username="root";
    public $pw="lcesa";
     
    //---------------Méthodes---------------
     
    	//Constructeur
    	public function __construct() //constructeur vide
    	{
    		//$this->connect();
    	}
     
     
           /**
         * Renvoie une instance de connexion à la BD
         * 
         * @return type PDO :une instance de connexion à la  BD
         */
    	public function connect()
    	{
    		try {
    				$this->conn = new PDO ("mysql:host={$this->hostname};dbname={$this->dbname}",$this->username,$this->pw );   
         return $this->conn;
    		}
    		catch( PDOException $Exception ) {
    				echo $Exception->getMessage();
     
    		}
    	}
    }

    et plus loin pour exécuter une requête sql avec la classe précédente:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    	public function doSelect()
    	{
             $base = new MaBase();//création d'une instance de la classe MaBase()
    		$sql = "SELECT * FROM technicien";
     
    		$sth = $base->connect()->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
            $sth->execute();
            return $sth->fetchAll();
    	}

  9. #29
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Bonjour armel merci de ta réponse et de ton aide..
    Peux tu m'expliquer mes erreurs si je t'en demande pas trop ?

    Je vois ce que tu fais mais je ne le comprend pas ^^
    Peux tu me faire un bref résumé s'il te plait ?

    -----------

    J'ai bien appliquer ton code avec un vulgaire copier coller par curiosité du resultat, dans ma page index.php j'ai une boucle for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // on fait une boucle qui va faire un tour pour chaque enregistrement 
    foreach ($technicienList  as $onetechnicien)
        { 
        // on affiche les informations de l'enregistrement en cours 
    echo '<input type="submit" class="btn btn-default btn-lg btn-block" name="nom_acc" value="'.$onetechnicien->getNom().'" >';
    	}
    Il m'indique cette erreur a son sujet :
    Fatal error: Call to a member function getNom() on a non-object in C:\wamp\www\LCEsa\index.php on line 38
    Cette erreur veut bien dire que le getNom n'est pas renseigné et donc qu'il ne peux rien afficher?

  10. #30
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 335
    Points : 5 704
    Points
    5 704
    Billets dans le blog
    1
    Par défaut
    pourquoi des attributs ? des constantes de classe ne sont-elles pas plus adaptées pour ton cas?
    Armel, pour répondre à cette remarque, lis mon post #4...

    comme les tableaux, les attributs d'une classe dans une chaîne de caractères doivent être entourés d'accolades.
    Ca, je savais pas...

    et je me demande un truc : est-ce que dans la classe MaBase, on pourrait y mettre une méthode "disconnect" :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public function disconnect(){
    $this=NULL;
    }
    car il faut bien se déconnecter à la fin...

    Sinon, Gwendoline, pour qu'on puisse t'indiquer tes erreurs, donne ton code exhaustif.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #31
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Bonjour =)
    Voici le code de index.php:
    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
    <?php
    $request = new Request();
     
    if ($request->hasParameter('accesrefu')) {
      echo '<script language="Javascript"> alert ("'.$request->getParameter('accesrefu').'" ) </script>';
    }
     
     
    $base = new MaBase($hostname='localhost', $dbname='lcesa', $username='root', $pw='lcesa');
    $technicien = new technicien();
    $technicienList = $technicien->doSelect($base->conn);
     
    //On ouvre la connexion a la BDD 
    $base->connect();
     
    ?>
    <form method="post" name="nom_acc2" action="log_tech.php">
    <?php
     
    // on fait une boucle qui va faire un tour pour chaque enregistrement 
    foreach ($technicienList  as $onetechnicien)
        { 
        // on affiche les informations de l'enregistrement en cours 
    echo '<input type="submit" class="btn btn-default btn-lg btn-block" name="nom_acc" value="'.$onetechnicien->getNom().'" >';
    	}
    // on ferme la connexion à mysql 
    $base->stopConnect(); 
     
    ?>
    </form>
    Voici le code de fonction .php :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php
     
    class MaBase
    {
     
    //pourquoi des attributs ? des constantes de classe ne sont-elles pas plus adaptées pour ton cas?
    //Attributs 
    public $conn = NULL;
    public $hostname="localhost";
    public $dbname="lcesa";
    public $username="root";
    public $pw="lcesa";
     
    //---------------Méthodes---------------
     
    	//Constructeur
    	public function __construct() //constructeur vide
    	{
    		//$this->connect();
    	}
     
     
           /**
         * Renvoie une instance de connexion à la BD
         * 
         * @return type PDO :une instance de connexion à la  BD
         */
    	public function connect()
    	{
    		try {
    				$this->conn = new PDO ("mysql:host={$this->hostname};dbname={$this->dbname}",$this->username,$this->pw );   
         return $this->conn;
    		}
    		catch( PDOException $Exception ) {
    				echo $Exception->getMessage();
     
    		}
    	}
    }
     
    // --------------------------------------Gestion des techniciens-------------------------------
     
    class Technicien
    {
    	public function doSelectById(Array $id)
    	{
    		// code select
    	}
     
    	public function doSelect()
    	{
            $base = new MaBase();//création d'une instance de la classe MaBase()
    		$sql = "SELECT * FROM technicien";
     
    		$sth = $base->connect()->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
            $sth->execute();
            return $sth->fetchAll();
    	}
     
    	public function doUpdate()
    	{
    		// code update
    	}
     
    }
    VOici l'erreur qui s'affiche :
    Fatal error: Call to a member function getNom() on a non-object in C:\wamp\www\LCEsa\index.php on line 38
    VOici la ligne 38 de index:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="submit" class="btn btn-default btn-lg btn-block" name="nom_acc" value="'.$onetechnicien->getNom().'" >';

  12. #32
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Dans ton doselect tu ne construis pas des objets technicien, et donc l'erreur est tout a fait logique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $base = new MaBase($hostname='localhost', $dbname='lcesa', $username='root', $pw='lcesa');
    C'est inutile maintenant (en effet, dans ton constructeur de 'MaBase' tu n'attends aucun parametres) et moche de faire l'affectation des valeurs dans l'appel de la fonction
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  13. #33
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Bonjour marcuscircus et merci de ta réponse

    Citation Envoyé par marcuscircus Voir le message
    Dans ton doselect tu ne construis pas des objets technicien, et donc l'erreur est tout a fait logique.
    Du coup je dois ajouter un objet technicien dans doselect pour que le foreach fonctionne c'est cela ?

    Citation Envoyé par marcuscircus Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $base = new MaBase($hostname='localhost', $dbname='lcesa', $username='root', $pw='lcesa');
    C'est inutile maintenant (en effet, dans ton constructeur de 'MaBase' tu n'attends aucun paramètres) et moche de faire l'affectation des valeurs dans l'appel de la fonction
    Comment faire autrement pour affecter les valeurs alors? Si je ne fais pas ça il me retourne plein d'erreurs .

  14. #34
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Du coup je dois ajouter un objet technicien dans doselect pour que le foreach fonctionne c'est cela ?
    Ta méthode va récupérer tes éléments en base de données mais si tu veux faire de la POO (et ensuite appelle des méthodes sur les objets) elle doit aussi te créer un tableau d'objets technicien)

    Comment faire autrement pour affecter les valeurs alors? Si je ne fais pas ça il me retourne plein d'erreurs .
    Au début le constructeur de MaBase attendait 4 paramètres obligatoires, il fallait donc lui passer ces 4 paramètres, mais la tu as changer ton constructeur et celui ci ne fait plus rien et n'attends plus de paramètres donc je ne vois pas ou tu peux encore avoir des erreurs la dessus.

    AVANT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function __construct($hostname, $dbname, $username, $pw)
    {
    $this->connect($hostname, $dbname, $username, $pw);
    }
    MAINTENANT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Constructeur
    	public function __construct() //constructeur vide
    	{
    		//$this->connect();
    	}
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  15. #35
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Donc ma méthode do select doit générer un tableau ?
    J'avais mis ca dans doSelect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return $sth->fetchAll();
    Ca ne fais pas un tableau ca ?

    Et les valeurs des attribut je les déclare dans le constructeur et du coup pas besoin de les mettre dans la déclaration de la méthode c'est ça ?

    En faisant ceci dans fonction.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public $conn = NULL;
    public $hostname="localhost";
    public $dbname="lcesa";
    public $username="root";
    public $pw="lcesa";
     
    //---------------Méthodes---------------
     
    	//Constructeur
    	public function __construct($hostname, $dbname, $username, $pw) //constructeur vide
    	{
    		$this->connect($hostname, $dbname, $username, $pw);
    	}
    Et ceci dans index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $base = new MaBase($hostname, $dbname, $username, $pw);
    Voici les erreurs que ca génère:
    Notice: Undefined variable: hostname in C:\wamp\www\LCEsa\index.php on line 23
    x5

    Warning: Missing argument 1 for MaBase::__construct(), called in C:\wamp\www\LCEsa\fonctions.php on line 53 and defined in C:\wamp\www\LCEsa\fonctions.php on line 18
    x5

    Notice: Undefined variable: hostname in C:\wamp\www\LCEsa\fonctions.php on line 20
    x5

    Fatal error: Call to a member function getNom() on a non-object in C:\wamp\www\LCEsa\index.php on line 38
    x1

  16. #36
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Si ca te fait un tableau mais pas un tableau d'objet Technicien, d'ou l'erreur que tu ne peux pas appelle getNom() car c'est une methode de Technicien.
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  17. #37
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Citation Envoyé par marcuscircus Voir le message
    Si ca te fait un tableau mais pas un tableau d'objet Technicien, d'ou l'erreur que tu ne peux pas appelle getNom() car c'est une methode de Technicien.
    Bah je dois mettre quoi alors pour afficher les résultat de mon tableau je comprend pas ..
    Je dois créer un tableau d'objet que je vais appeler Technicien c'est ça ?
    Et ensuite j'appel une fonction qui va m'afficher un a un les noms situés dans le tableau ?

  18. #38
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Laisses le constructeur vide comme armel te la sugeré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Constructeur
    	public function __construct() //constructeur vide
    	{
     
    	}
    Mais du coup dans ton index tu ecris :

    Apres si tu veux laisser tes parametres dans ton constructeur alors appel le de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $base = new MaBase('localhost', 'lcesa', 'root', 'lcesa');
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  19. #39
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 429
    Points : 135
    Points
    135
    Par défaut
    Et il va savoir les valeurs des attributs ?
    Sans lui dire que ce sont des variables dont les valeurs sont présentes dans fonction.php ?

    Mais c'est magique ce truc la

    Bon maintenant il reste le problème d'affichage des noms des techniciens...

    Est ce que j'ai bien compris ce qu'il fallait faire pour ce soucis ?

  20. #40
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Bah je dois mettre quoi alors pour afficher les résultat de mon tableau je comprend pas ..
    Je dois créer un tableau d'objet que je vais appeler Technicien c'est ça ?
    Et ensuite j'appel une fonction qui va m'afficher un a un les noms situés dans le tableau ?
    Je crois que tu n'as pas compris ce qu’était la POO et le principe d'encapsulation des données...

    Technicien est une classe qui doit contenir des proprietes et des methodes spécifiques au Technicien.
    Le tien n'a ni propriétés ni la methodes getNom() que tu essayes d’appeler...

    De plus tu construis un tableau mais pas un tableau d'objets, et donc si tu veux appelé la methode getNom() (qu'il faut d'abord definir dans la classe Technicien) Il faut que ce soit un objet de type Technicien....
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [POO] Livre sur PHP la POO et UML
    Par Sourrisseau dans le forum Livres
    Réponses: 2
    Dernier message: 11/04/2008, 19h46
  2. Réponses: 11
    Dernier message: 23/11/2007, 11h31
  3. [POO] bouquin php et poo
    Par leblaireau dans le forum Langage
    Réponses: 1
    Dernier message: 13/09/2006, 22h40
  4. Passer de PHP a Word ou PDF
    Par guillaumeIOB dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/09/2006, 12h26
  5. Réponses: 2
    Dernier message: 06/01/2005, 22h09

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