Questions pour afficher des news [Résolu]

Messages postés
2
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
1 mai 2007
- - Dernière réponse : h004x
Messages postés
2
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
1 mai 2007
- 1 mai 2007 à 21:43
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 ;)
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
194
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010
3
Merci
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);

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Astalavista
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 198 internautes nous ont dit merci ce mois-ci

Commenter la réponse de neigedhiver
Messages postés
194
Date d'inscription
lundi 24 décembre 2001
Statut
Membre
Dernière intervention
3 février 2010
0
Merci
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 ???
Commenter la réponse de cs_Astalavista
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13
0
Merci
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 ;)
Commenter la réponse de neigedhiver
Messages postés
2
Date d'inscription
dimanche 29 avril 2007
Statut
Membre
Dernière intervention
1 mai 2007
0
Merci
Merci beaucoup à vous tous :)
Commenter la réponse de h004x