Questions pour afficher des news

[Résolu]
Signaler
Messages postés
2
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
1 mai 2007
-
Messages postés
2
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
1 mai 2007
-
Bonsoir, voila, j'ai enfin fini mon script d'ajout de news à partir d'une interface d'administration \o/

Tout marche très bien, tout est bien implenté mais mon probléme est celui là :

J'aimerais afficher 5 news par page, pas plus, et que quand cette limite est dépassé, une nouvelle page se crée pour afficher les anciennes news, ou alors faire une page "archives" des news !

Est ce possible, et, si oui, comment?

merci d'avance,
cordialement,
h004x ;)

5 réponses

Messages postés
192
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010

Si tes news sont dans une base SQL, il te suffit simplement d'utiliser les LIMIT;

Là pour afficher une page :
$Page = 0;
mysql_query("SELECT * FROM `news` WHERE 1 LIMIT ".0 * $Page.",". 5 * $Page."");

et pour calculer le nombres de news c'est simple :
$Nb_Pages = ceil(mysql_num_rows(mysql_query("SELECT * FROM `news` WHERE 1")) / 5);
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

Je trouve ton code très sale... (désolé...).

$Nb_Pages = ceil(mysql_num_rows(mysql_query("SELECT * FROM `news` WHERE 1")) / 5);

Déjà, aucun contrôle en cas d'erreur du côté du serveur MySQL.
Ensuite, ta requête est sale. Celle-ci est bien plus adaptée :
SELECT count(id) FROM news;

Compter un identifiant, surtout si le champs est auto_increment est quand même plus optimisé. Suffit de lire le résultat avec mysql_result.

Enfin

mysql_query("SELECT * FROM `news` LIMIT ".0 * $Page.",". 5 * $Page."");

La syntaxe est complètement fausse et php retourne l'erreur suivante :
Parse error: parse error, unexpected T_DNUMBER in C:\www\*****\www\test.php on line 4
Une petite parenthèse règle le problème. Mais multiplier la numéro de page par 0 fera toujours 0.
Messages postés
192
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010

Tu me suis là, c'est pas possible ... Partout ou je vais tu es là ...

He oui désoler, il étais 2 H du matin. Alors :

define('NEWS_PAR_PAGE', 5);
//Afficher des news
$Page = 0;
$Les_News = mysql_query("SELECT * FROM `news` WHERE 1 LIMIT ".((1 - $Page) * NEWS_PAR_PAGE).",".($Page * NEWS_PAR_PAGE)."");
//et pour calculer le nombres de news c'est simple :
$Nb_Pages = ceil(mysql_result(mysql_query('SELECT count(id) FROM `news`'), 0) / NEWS_PAR_PAGE);

Voila voila ... tu préfère neigedhiver ???
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
LoL non, je ne te suis pas à la trace. Seulement, je jetais un oeil aux derniers sujets, j'ai vu ta réponse, j'ai répondu. C'aurait pu être n'importe qui, j'aurais dit exactement la même chose ;)

Euh donc oui, c'est mieux... Reste un petit progrès à faire avec les double quotes et les variables dedans... Mais sinon... Ca devrait déjà ne plus causer d'erreur ;)
Messages postés
2
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
1 mai 2007

Merci beaucoup à vous tous :)