Classes & Tableau (array)

Eléphanteau du PHP | 30 Messages

08 déc. 2007, 15:21

Bonjour,

Je suis en train de faire un petit CMS pour créer plus facilement les sites que l'on me demande.
Je commence par le "module" news.

J'ai un problème de classe ou plutôt de conception.

J'ai un fichier _details.php qui permet de généré le détail d'une news.
<?php
$sknews = new skNews($_GET['id']); // Crée les données de la news
?>
<div>
    <h1><?php $sknews->Titre(); ?></h1>
    
    <div>
    
    <?php $sknews->Article(); ?>
    
        <div><?php echo $sknews->auteur_id; ?></div>
    </div>
</div>
J'aimerai faire dans un autre fichier, _list.php la liste des news pour les afficher.

Dans ce dernier, j'aimerai garder les mêmes variables ou attributs ($sknews->Titre();, $sknews->auteur_id;...) comme dans _details.php et faire une boucle.

Mon problème:
Comment faire une classe qui recueil les id de chaque news et qui renvoie le tableau?
Comment mettre en place la boucle ?
Est ce la bonne solution ? Sachant que je veux garder les même attributs que dans le _detail.php

Merci d'avance! :D

Eléphanteau du PHP | 30 Messages

09 déc. 2007, 12:41

En attendant votre réponse j'ai pu réfléchir à mon problème, mon gros soucis serait de mettre dans un array tout mes id!

Mon fichier _list.php:
<?php
$id = new skNews();
// Puisqu'il n'y a pas d'id précisé dans ma classe ouvre la fonction CreerListArticle()
// Qui devrait renvoyer un array

for($i=0;$i<sizeof($id);$i++)
{
    $sknews = new skNews($id[$i]);
?>

<div>
    <h1><?php $sknews->Titre(); ?></h1>
    
    <div>
    
    <?php $sknews->Article(); ?>
    
        <div><?php echo $sknews->auteur_id; ?></div>
    </div>
</div>
<?php } ?>
Comment renvoyer un tableau avec une fonction d'une classe ?

--------------------------------------------------------------------------------------------------------


Malgrès mon problème j'ai réussi à faire avec en le "contournant".

ma fonction qui construit les id :
public function CreateList($requete,$id)
    {
        $this->connect($this->db_host, $this->db_user, $this->db_pswd, $this->db_name);
        $i = 0;
        $result = mysql_query($requete) or die (mysql_error());
        while($array = mysql_fetch_assoc($result))
        {
             $this->listing[$i] = $array[$id];
             $i++;
        }
    }
et ma page _list.php:
<?php
$id = new skNews();

for($i=0;$i<sizeof($id->listing);$i++)
{
    $sknews = new skNews($id->listing[$i]);
?>

<div>
    <h1><?php $sknews->Titre(); ?></h1>
    
    <div>
    
    <?php $sknews->Article(); ?>
    
        <div><?php echo $sknews->auteur_id; ?></div>
    </div>
</div>
<?php } ?> 
Merci à ceux qui ont pris le temps de lire mon message.

J'aimerai savoir si maintenant mon code est bien rédigé ? Et s'il n'y a pas plus simple ?