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. #61
    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
    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
     
     <?php
         $base = new MaBase();//
    	$sql = "SELECT * FROM technicien";
     
    	$sth = $base->connect()->prepare($sql);
            $sth->execute();
    // retournes un tableau d'objets
    		$tab = $sth->fetchAll(PDO::FETCH_OBJ);
     
     
     
     // on parcourt le tableau
    foreach ($tab as $row){
     
     // on affiche Nom car une des propriétés de l'objet est 'Nom' tu peux le voir dans ton var_dump.... => ca correspondant aux noms de tes champs en BD...
     echo $row->Nom,'<br>';
    }

  2. #62
    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
    la variable $arrayResult represente mes resultats?
    Ton $tab
    $res represente le nom que je leur donne?
    $res = $row

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    et $ technician est un objet de la classe Technicien ?
    c'est une instance de technicien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La fonction constructFromResource(), je dois la creer ?
    Sauf si elle tombe du ciel, sinon oui il faut coder les fonctions...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $array[] est le nom du tableau de l'objet technician
    ?
    c'est ton tableau de résultats que tu retourneras

  3. #63
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    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
    Nan mais la je crois que en faite j'ai pas le chromosome présent apte a comprendre ces choses la c'est déconné cette histoire

    ----------

    Alors sa avance doucement mais surement et en grosse partie grâce a vous précisons le ^^

    J'ai mis dans mon fichier fonction.php le code de MaBase.php dans class connect et celui de affiche.php dans class technicien

    Ma foi tout va bien il affiche bien le nom des techniciens et tout ça mais pourquoi je ne peux pas les mettre sous forme de bouton il m'enquiquine ..

    On a juste pas le droit ?

  4. #64
    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
    en français ça donne quoi? (ou en code)

  5. #65
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    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
    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
    <?php
     
    class MaBase
    {
     
    public $conn = NULL;
    public $hostname="localhost";
    public $dbname="lcesa";
    public $username="root";
    public $pw="lcesa";
     //constructeur vide ne contient aucun paramètre
    	public function __construct()
    	{
    		//$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 "Echec connexion:",$Exception->getMessage();
     
    		}
    	}
    }
     
    // --------------------------------------Gestion des techniciens-------------------------------
     
    class Technicien
    {
    	public function doSelectById(Array $id)
    	{
    		// code select
    	}
     
    	public function doSelect()
    	{
            $base = new MaBase();//
    		$sql = "SELECT * FROM technicien";
     
    		$sth = $base->connect()->prepare($sql);
            $sth->execute();
    		$tab = $sth->fetchAll(PDO::FETCH_OBJ);
     
    		foreach ($tab as $row){
    			echo $row->Nom,'<br>';
    		}
     
    	}
    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
    <?php
    $request = new Request();
     
    if ($request->hasParameter('accesrefu')) {
      echo '<script language="Javascript"> alert ("'.$request->getParameter('accesrefu').'" ) </script>';
    }
     
     
    $base = new MaBase('hostname', '$dbname', '$username', '$pw');
    $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 $technicien)
        { 
        // 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="'.$technicien->doSelect().'" >';
    	}
     
     
    ?>
    et ca affiche bien les noms des techniciens et tout et tout mais le fait de remplacer ça :
    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="'.$technicien->doSelect().'" >';
    (present dans index.php

    Par ça (dans fonction.php avec le foreach) :
    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="'.$row.'" >';
    Il génère une erreur ..

  6. #66
    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
    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
    <?php
    $request = new Request();
     
    if ($request->hasParameter('accesrefu')) {
      echo '<script language="Javascript"> alert ("'.$request->getParameter('accesrefu').'" ) </script>';
    }
     
     
    Ton constructeur n'attend pas de parametre pourquoi envoyer ca?
    $base = new MaBase('hostname', '$dbname', '$username', '$pw');
    $technicien = new Technicien();
    doSelect n'attend pas de parametre non plus...
    $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 $technicien)
        { 
        // on affiche les informations de l'enregistrement en cours 
    //echo '<input type="submit" class="btn btn-default btn-lg btn-block" 
    doSelect ne renvoie rien(pas de return dans la methode) mais fait seulement un echo
    name="nom_acc" value="'.$technicien->doSelect().'" >';
    	}
     
     
    ?>

  7. #67
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    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
    doSelect ne renvoie pas (pas de return dans la methode) mais fait seulement un echo
    Pas compris ... J'ai pas ais de return dans la méthode .. enfin je crois ??

  8. #68
    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
    Citation Envoyé par gwendoline-bricout Voir le message
    Pas compris ... J'ai pas ais de return dans la méthode .. enfin je crois ??

    la méthode doSelect() de la classe Technicien doit pouvoir renvoyer un tableau contenant la liste des techniciens. le tableau renvoyé peut être parcouru à l'aide d'une boucle pour afficher les techniciens.

    Fonctions.php
    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
    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
    66
    67
    68
     
    <?php
     
     
    class MaBase
    {
     
    public $conn = NULL;
    public $hostname="localhost";
    public $dbname="lcesa";
    public $username="root";
    public $pw="lcesa";
     //constructeur vide ne contient aucun paramètre
    	public function __construct()
    	{
    		//$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 "Echec connexion:",$Exception->getMessage();
     
    		}
    	}
    }
     
    // --------------------------------------Gestion des techniciens-------------------------------
     
    class Technicien
    {
    	public function doSelectById(Array $id)
    	{
    		// code select
    	}
     
     
         /**
          * Retourne la liste des techniciens
          * 
          * @return array 
          */
    	public function doSelect()
    	{
            $base = new MaBase();//
    		$sql = "SELECT * FROM technicien";
     
    		$sth = $base->connect()->prepare($sql);
            $sth->execute();
    	 return $sth->fetchAll(PDO::FETCH_OBJ);
     
     
    	}
     
    }//end Technicien
     
     
    ?>

    et dans ta page index.php:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    //page index.php
    require_once 'Fonction.php';
     
    $technicien = new Technicien();
    $tab =$technicien->doSelect();
    var_dump( $tab );
    //pour afficher, il faut parcourir le tableau $tab avec une boucle
     
    ?>

  9. #69
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    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
    Alors mon foreach va dans index.php a la suite des declarations de $tab et $technicien ?

    J'ai essayé ça fonctionne pas :
    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
    <?php
    $request = new Request();
     
    if ($request->hasParameter('accesrefu')) {
      echo '<script language="Javascript"> alert ("'.$request->getParameter('accesrefu').'" ) </script>';
    }
     
    $technicien = new Technicien();
    $tab = $tehnicien->doSelect();
    foreach ($tab as $row){
    	echo $row->Nom,'<br>';
    }
    var_dump($tab);
     
    //On ouvre la connexion a la BDD 
    $base->connect();
     
    ?>
    Et fonctions.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
    class MaBase
    {
     
    public $conn = NULL;
    public $hostname="localhost";
    public $dbname="lcesa";
    public $username="root";
    public $pw="lcesa";
     //constructeur vide ne contient aucun paramètre
    	public function __construct()
    	{
    		//$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 "Echec connexion:",$Exception->getMessage();
     
    		}
    	}
    }
     
    // --------------------------------------Gestion des techniciens-------------------------------
     
    class Technicien
    {
    	public function doSelectById(Array $id)
    	{
    		// code select
    	}
     
    	public function doSelect()
    	{
            $base = new MaBase();//
    		$sql = "SELECT * FROM technicien";
     
    		$sth = $base->connect()->prepare($sql);
            $sth->execute();
    		return $sth->fetchAll(PDO::FETCH_OBJ);
     
    	}

  10. #70
    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
    Ceci marchera en effet, mais c'est pas du vrai objet pour moi, car ton technicien est plus une classe de gestion des techniciens plutot qu'un objet technicien....
    En effet, tu te retrouves avec un tableau d'objet mais pas avec un tableau d'objets Technicien...

    Et tout mettre dans fonction.php c'est super moche, comme deja souligne par Armel, c'est plus propre d'avoir un fichier Technicien.php.

  11. #71
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    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 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    Je ne réponds pas souvent par manque de temps, et d'autre part, tu obtiens des réponses de gens compétents (plus que moi), mais cela dit, je m'étais fait un petit aide-mémoire pour PDO qui peut t'être utile (moi aussi je viens de quitter les fonctions _MySQL ; et cet aide-mémoire suppose que le fetch te retourne un objet ce qui est mieux pour faire de la POO) :
    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
    //connexion :
     
    include_once("MyPdo.php");
     
    $id_conn = new MyPdo();
     
    //exécution requête :
     
    $sql="UPDATE forum_vhs SET text = '".$texte."' where id_forum =".$id_forum;
    $result1= $id_conn->prepare($sql);
    $result1->execute();
     
     
    //fetch :
     
    $result1= $id_conn->prepare($sql);
    $result1->execute();
    while ($res=$result1->fetch())
    	echo $res->champ;
     
    //nombre de lignes (mysql_num_rows)
    $result = $id_conn->prepare($sql);
    $result->execute();
    $max = $result->rowCount();
     
    //fermer connexion (mysql_close()) :
     
    if($id_conn)	$id_conn = NULL;
    ?>
    et un petit conseil : avant de chercher à convertir l'ensemble de ton application en POO, progresse par petits pas : fais d'abord marcher un petit truc et fais le grossir petit à petit...

  12. #72
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    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 a tous et a toutes =)
    D'acoord marcus je vais faire en fichiers séparés, laurent je ne comprend pas ton poste ... C'est quoi ce code?


    OUi j'aimerai commencé par de petites choses mais j'suis toute seule et je trouve pas d'exercices simples avec des corrections et quand je ne comprend pas quelque chose je sais pas a qui demandé sans passer pour une idiote

  13. #73
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    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 codeigniter
    Est ce que quelqu'un utilise codeigniter?

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

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