POO PHP

POO PHP - PHP - Programmation

Marsh Posté le 09-09-2005 à 17:30:19    

Salut,
 
Apres de multiples démotivation, je commence afin a vouloir faire du beau code avec de belles classes.
Seulement voila, ca change un peu beaucoup et je me voila perdu.
Je veux juste dans un premier temps récuprer des valeurs de ma bdd.
Voici ma classe :  
 

Citation :

<?php
 
class Contenu
{
 var $id;
 var $partie;
 var $i;
 
 function Contenu($id,$partie) {
  if(empty($this->id)) {
   $sql = "SELECT * FROM vlcp_site WHERE partie='$this->partie' AND rubrique='' ORDER BY ordre DESC";
  } else {
   $sql = "SELECT * FROM vlcp_site WHERE id='$this->id' ORDER BY ordre DESC";
  }
   $req = mysql_query($sql) or die('Erreur SQL !' . $sql.'<br />' . mysql_error());
 }
 
 function getNbre() { $this->nbre = mysql_num_rows($req); return $this->nbre; }  
 
 function getId($i) { return mysql_result($req, $this->i, "id" ); }
 function getTitre($i) { $this->id = mysql_result($req, $this->i, "titre" ); return $this->titre; }
 function getTexte($i) { $this->id = mysql_result($req, $this->i, "texte" ); return $this->texte; }
 function getImage($i) { $this->id = mysql_result($req, $this->i, "image" ); return $this->image; }
 
}  
?>


 
et mon html :  
 
<?php
                                include('connect.php');
 
    require('contenu.inc');
     
    $contenu = new Contenu("$p","$part" );
    echo $contenu->getId(1);
    echo $contenu->getTitre(1);
    echo $contenu->getTexte(1);
    echo $contenu->getImage(1);
     
?>
 
Comment faire ? :(

Reply

Marsh Posté le 09-09-2005 à 17:30:19   

Reply

Marsh Posté le 09-09-2005 à 17:38:05    

Comme dans toutes fonctions, les variables qui ne viennent pas de l'extérieur n'existent plus une fois l'exécution de la fonction terminé.
Ca serait donc une bonne idée de déclarer la variable $req au niveau de la classe et d'utilisé celle ci.
 
Au fait, tu peux m'expliquer à quel moment tu donne une valeiur au $i de la classe , à quoi ca sert de donenr un valauer au $id de la classe alros que tu l'utilises jamais nulle part et d'où sortent les "$this->titre", "$this->texte" et "$this->image" ?
 
Un conseil avant de faire une classe travaillant avec mysql, commence par une classe plus simple qui te permettra de comprendre comment fonctionnent les variables et quelle est la diférence entre les variables de la classe (déclaré dans la classe en dehors des fonctions) les variables propres aux fonctions de la classe et les variables passé en paramettre à une des fonctions de la classe.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed