Parcours d'objet

Parcours d'objet - PHP - Programmation

Marsh Posté le 19-10-2007 à 13:26:53    

Bonjour. Je me lance dans la programmation objet en php : Parait que c tellement mieux, que c tellement beau, et pratique. Pour être franc je n'ai pas encore vu l'interet. Doit surment y en avoir un...
Bref, j'ai une classe article, que je charge, et que je rempli grace à un mysql_fetch_object, ms
je ne sais pas comment la parcourir. voila mon code :
 
//VOici la classe article
// Déclaration de la classe
 
class article
{
var $id,$titre,$texte,$image,$date_art;
 
 
//Constructeur
 
function article($id,$titre,$texte,$image,$date_art)
{
$this->id=$id;
$this->titre=$titre;
$this->texte=$texte;
$this->image=$image;
$this->date_art=$date_art;
}
 
 
 
// Affiche les articles
function affiche_art()
{
echo "<div class='article'>";
echo "<div class='row_article'>$this->date_art</div>";
echo "<div class='row_article'>$this->titre</div>";
echo "<div class='row_article'>$this->texte</div>";
echo "<div class='row_article'><img src='images/$this->image'></div>";
echo "</div>";
 
}
 
 
}
 
// Chargement de la classe
while($ligne=mysql_fetch_object($resultat))
{
$art= new
 
article($ligne->id_article,$ligne->titre_article,$ligne->texte_article,$ligne->image_article,$ligne->date_article);
}
 
// Affichage de la classe (qui donne pas ce que je veux : SA affiche tjrs le meme article)
foreach($art as $key=>$value)
{
$art->affiche_art();
}
 
 
Merki de votre aide

Reply

Marsh Posté le 19-10-2007 à 13:26:53   

Reply

Marsh Posté le 19-10-2007 à 13:32:57    

Excuse-moi je ne parle pas couramment le php,
mais $art c'est quoi ? Un tableau ?
Dans le code on dirait juste un objet, si c'est ça il ne pourrait contenir qu'un seul article.

Reply

Marsh Posté le 19-10-2007 à 13:33:29    

ça n'a rien a voir avec un problème de classe/object ton truc.
Je ré-écris ce que tu as fait :

Code :
  1. $k=0;
  2. while($k<10){
  3.  $k++;
  4. }
  5. print $k;


et là ça affichera toujours 9 ... ça te surprend ? non j'espere.

 

Bin tu fais exactement pareil avec ton $art [:spamafote]

 

note: pour a faire de l'oo, utilise php5 ( et la syntaxe qui va bien genre __construct)
edit: par ailleurs tu fais n'importe quoi su l'appel d'affiche_art.
C'est une méthode de ta classe et tu l'appeles en bouclant sur chacun des attributs de celles-ci.


Message édité par anapajari le 19-10-2007 à 13:34:53
Reply

Marsh Posté le 19-10-2007 à 13:34:36    

Oui $art est un objet. Je croyais qu'un objet pouvait contenir plusieur article, tant qu'il y a des choses differents dedans. Je me suis trompé ??

Reply

Marsh Posté le 19-10-2007 à 13:35:51    

Oui, il ne contiendra que le dernier article que tu lui auras affecté.
Si tu veux plusieurs choses il faut une collection, tableau, ...

Reply

Marsh Posté le 19-10-2007 à 13:36:27    

nan sa me surpend pas. Ms pourtant mon affiche_art et bien dans la boucle, donc ça devrais afficher pour chaque article, nan ??

Reply

Marsh Posté le 19-10-2007 à 13:37:28    

Oki, donc mon code est bon ou pas ???  
Une collection ==> Okay !!! Une petit indication pour me mettre sur la bonne voie, ce serai sympas :)

Reply

Marsh Posté le 19-10-2007 à 13:39:50    

SwiD a écrit :

Ms pourtant mon affiche_art et bien dans la boucle, donc ça devrais afficher pour chaque article, nan ??


non

SwiD a écrit :

Oki, donc mon code est bon ou pas ???


non ... mais alors pas du tout.

SwiD a écrit :

Une collection ==> Okay !!! Une petit indication pour me mettre sur la bonne voie, ce serai sympas :)


http://fr.php.net/array

 


Message édité par anapajari le 19-10-2007 à 13:40:04
Reply

Marsh Posté le 19-10-2007 à 13:42:09    

Oki sympas, sa m'aide, bon pas des masses, ms c tjrs ça

Reply

Marsh Posté le 19-10-2007 à 13:44:31    

C'est un tableau. Il faut le créer avant, ajouter des articles dedans, puis à la fin le parcourir pour afficher. Tu dois avoir tous les éléments sur la page.

Reply

Marsh Posté le 19-10-2007 à 13:44:31   

Reply

Marsh Posté le 19-10-2007 à 13:45:02    

Oki comme ça c'est clair. Merce Gzii. ;)

Reply

Marsh Posté le 19-10-2007 à 17:32:14    

Dans ton while, tu peux faire :
$art[] = new article(...);

Reply

Sujets relatifs:

Leave a Replay

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