c'est un listing des news que je veut afficherje ne m'en sort pas au niveau des boucles while() j'ai fait plusieurs tests mais ca me genere des boucles infinies donc mon navigateur bugé voici mon code.
class news
{
var $id;
var $titre;
var $auteur;
var $texte;
var $date;
var $image;
}
T'as pas le droit (conceptuel) de mettre une méthode (fonction) listing à l'intérieur car l'objet "news" est un élément de listing, puisque "listing" sous-entend: liste de news. class article
{
var $id;
var $titre;
var $auteur;
var $texte;
var $date;
var $image;
}
Et des news sont définis par une association de 1..N articlesclass news {
//tableau de relation news/article (1,N)
var $articles = array();
//Listing à partir de la base
public function listing($nbn=null) { //paramètre facultatif
//vider le tableau résultat
$this->articles = array();
//Extraire les articles
$query = mysql_query("SELECT * FROM news ORDER BY id DESC ".($nbn>0?" LIMIT $nbn":""));
while($row = mysql_fetch_assoc($query)) {
//création d'un objet article bien formé
$un_article = new article();
$un_article->titre = $row["titre"];
//idem pour les autres propriétés
//Ajout dans la liste des articles à retourner
$this->articles[] = $un_article; //mise en relation article/news
} //fin while
//retour du résultat
return $this->articles;
}
}
Dans ta classe principale, exécutable, tu pourra déclencher donc l'extraction des news en manipulant simplement la classe news:
//objet de travail
$news = new news();
//affichage des news
echo "<pre>";
print_r($news->listing()); //tous les articles
echo "</pre>";Code : Tout sélectionner
Fatal error: Call to a member function on a non-object in d:\program files\easyphp1-7\www\game-360\index.php on line 12
print_r($news->listing());
maintenant ca m'affiche 2 message d'erreur
Code : Tout sélectionner
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in d:\program files\easyphp1-7\www\game-360\classe\news.php on line 18Code : Tout sélectionner
Fatal error: Cannot instantiate non-existent class: news in d:\program files\easyphp1-7\www\game-360\index.php on line 9 public function listing($nbn=null) { //paramètre facultatif
je ne suis pas sur que je suis avec php5 (public qui foirerait) j'utilise easyphp.$afficher = new news;
Code : Tout sélectionner
Fatal error: Call to a member function on a non-object in d:\program files\easyphp1-7\www\game-360\index.php on line 12Code : Tout sélectionner
print_r($news->listing());
$afficher = new news;
Code : Tout sélectionner
Array
(
[0] => article Object
(
[id] =>
[titre] => news2
[auteur] =>
[texte] =>
[date] =>
[image] =>
)
[1] => article Object
(
[id] =>
[titre] => news1
[auteur] =>
[texte] =>
[date] =>
[image] =>
)
)
//récupèrer les news de la base dans le tableau $news
$news = $afficher->listing();
//Le parcourir
if (is_array($news) && count($news)>0){
//afficher un par un les articles
foreach ($news as $index=>$article){
echo $article->titre . "<br />";
}
}