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

PHP & Base de données Discussion :

Utilisation de constructeur [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Utilisation de constructeur
    Bonjour tout le monde,

    Je réalise un site web en PHP orientée objet donc je posséde des classes, des DAO(classe d'accées aux données), des controles et des vues.

    Dans mes méthodes des DAO, je souhaite utiliser le constructeur de ma classe, Voici un exemple :
    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
    <?php
    class categorie{
     
    	private $Str_code;		// Le code de la catégorie
    	private $Str_libelle;	// Le libéllé de la catégorie
     
    	// Constructeur
    	public function categorie($c=null, $l=null){
    		$this->code = $c;
    		$this->libelle = $l;
    	}
     
    	// Methodes getteurs
    	public function get_code()
    	{
    		return $this->Str_code; 
    	}
    	public function get_libelle()
    	{
    		return $this->Str_libelle;
    	}
     
    	// Methodes setteurs
    	public function set_code($lecode)
    	{
    		$this->Str_code=$lecode;
    	}	
    	public function set_libelle($lelibelle)
    	{
    		$this->Str_libelle =$lelibelle;
    	}
    }
    ?>
    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
    <?php
    	class DAO_Categorie
    	{
    	public static function ChargerTteCategorie()
    		{
    			$Col=new collection();//pas dans le while
     
    			$req="SELECT * FROM categorie";
    			//echo $req;
     
    			$jeu=mysql_query($req);
    			while($ligne=mysql_fetch_array($jeu))
    			{
    $MaCategorie = new categorie($ligne["CODECAT"], $ligne["Ca_DESIGN"]);
    				$Col->add($MaCategorie);
    			}
     
    			return $Col->getAll();
    		}
    J'ai un constructeur 'C_menuNeuf' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    	$MesCategories = DAO_Categorie::ChargerTteCategorie();
    	require_once("Vues/V_menuNeuf.php");
    ?>
    Une vue 'V_menuNeuf' :
    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
    <ul>  <!-- Crée une liste à puces -->
    	<tr>
    		<th>Par les cat&eacute;gories</th>
    	</tr>
    	<?php 
     
    		// Pour chaque tableau de catégorie
    		foreach ($MesCategories as $Categorie)
    		{
    	?>
     
    	<li><!-- 	Crée un nouvel élément pour une liste -->
    		<!-- Permet d'exécuter l'action cat et de choissir la catégorie -->	
    		<a href="Index.php?action=categorie&choix=<?php echo $Categorie->get_code();?> ">
    			<?php echo $Categorie->get_libelle();?>
    		</a>
    	</li>
    	<?php
    	}
    	?>
    </ul>
    Lorsque j'exécute mon site : il m'affiche 3 points, donc il voit bien qu'il y a 3 catégorie dans ma base de données MySql. Mais n'affiche pas leur nom.

    Par contre si la méthode de la DAO est la 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
    public static function ChargerTteCategorie()
    		{
    			$Col=new collection();//pas dans le while
     
    			$req="SELECT * FROM categorie";
    			//echo $req;
     
    			$jeu=mysql_query($req);
    			while($ligne=mysql_fetch_array($jeu))
    			{
    				$MaCategorie=new categorie();
     
    				$MaCategorie->set_code($ligne["CODECAT"]);
    				$MaCategorie->set_libelle($ligne["Ca_DESIGN"]);
    	$Col->add($MaCategorie);
    			}
     
    			return $Col->getAll();
    		}
    là, lorsque j'exécute mon site web, j'obtien bien les noms de chaque catégorie.

    Donc je me demande si en PHP orientée objet, on peut utiliser le constructeur de la classe??
    Si on le peux vraiment, d'aprés vous, que dois-je faire pour régler mon problème??

    Merci d'avance en espérant que vous éclairerez ma lumière car cela fais plusieurs jours que j'y réfléchi...!!

  2. #2
    Membre chevronné
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Par défaut
    Dans ton constructeur tu utilises
    $this->code = $c;
    $this->libelle = $l;

    alors que les noms de tes attributs sont
    $Str_code;
    $Str_libelle;

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à Sylvain71
    Effectivement, mon erreur était toute bête!!

    Merci à toi.

    Enfin ce problème est réglé mais maintenant j'en ai encore un --> c'est toujours la programmation : vous croyais vous en être sorti et ba nn!!

    Cordialement!!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/07/2011, 11h15
  2. L'utilisation du constructeur est-il bon ?
    Par neufrdb dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 17/05/2011, 21h00
  3. SUPER - utiliser le constructeur de la même class
    Par Thoustra dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 24/11/2010, 15h14
  4. Utilisation du constructeur d'une superclasse
    Par _Michel dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 29/07/2009, 18h34
  5. Réponses: 5
    Dernier message: 17/04/2008, 13h22

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