Questions pour afficher des news

Résolu
h004x Messages postés 2 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 1 mai 2007 - 30 avril 2007 à 00:25
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 ;)

5 réponses

cs_Astalavista Messages postés 192 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 3 février 2010
30 avril 2007 à 01:58
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);
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
30 avril 2007 à 20:12
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.
3
cs_Astalavista Messages postés 192 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 3 février 2010
1 mai 2007 à 18:50
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 ???
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
1 mai 2007 à 19:50
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 ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Merci beaucoup à vous tous :)
0
Rejoignez-nous