POSTER, AFFICHER, ... DES NEWS SUR VOTRE SITE

Messages postés
23
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
23 novembre 2011
- - Dernière réponse : fedebul
Messages postés
129
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
27 février 2012
- 16 nov. 2009 à 16:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49292-poster-afficher-des-news-sur-votre-site

TORA38
Messages postés
23
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
23 novembre 2011
-
S'il vous plait votez et donnez votre avis
Arto_8000
Messages postés
1051
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
5 -
Pour ton système de pagination c'est très mauvais. Il faut que tu penses à faire quelque chose de générale et qui peut aller jusqu'à l'infini. Tu devrais avoir un paramètre "page" à partir duquel tu peux trouver quel range tu dois sélectionner dans ta base de donnée.

Ainsi ça devrais te donner quelque chose dans ce genre au lieu du copier-coller que tu fais :

<?php
$nbElementParPage = 30;
$page = (isset($_GET['page']) && $_GET['page'] > 0) ? $_GET['page'] : 1;
$sql = 'SELECT * FROM News ORDER BY ID DESC LIMIT ' . (($page-1) * $nbElementParPage). ',' . $nbElementParPage;
?>

Aussi pour la synthaxe du LIMIT en SQL fait très attention le deuxième paramètre est la quantité d'élément que tu dois sélectionner après l'index que tu as spécifié en premier. Ce que tu faisait s'était de mettre en deuxième paramètre la position du dernière élément. Si tu aurais testé la page 7 t'aurais retourné 210 résultats.

Pour le côté base de donnée, c'est toujours mieux de passer par une classe qui gère la connexion.

Aussi, apprend à utiliser des tableaux notamment dans ton fichier postnews.php . Quelque chose comme ceci aurait grandement réduit ton code :

<?php
$mois = array('Janvier', 'Fevrier', ...);
$moisCourrant = $mois[date('n')];
$date = date('d') . ' ' . $moisCourrant . ' ' . date('Y H:i:s');
?>

Pour la fonction date tu devrais regarder la liste de tous les lettres possibles, car dans plusieurs cas tu n'utilisais pas celle qui était la plus approprié. Si tu veux l'année au long c'est "Y" et non "20y".

http://ca2.php.net/manual/fr/function.date.php
TORA38
Messages postés
23
Date d'inscription
mardi 17 février 2009
Statut
Membre
Dernière intervention
23 novembre 2011
-
Merci pour ta correction :D
fedebul
Messages postés
129
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
27 février 2012
-
bonjour et merci pour ta source ! je ne vois pas comment corriger et mettre ce que tu proposes dans la page des news, faut il oter toutes les lignes qui affiche les news ? merci à vous :
<?php
$nbElementParPage = 30;
$page = (isset($_GET['page']) && $_GET['page'] > 0) ? $_GET['page'] : 1;
$sql = 'SELECT * FROM News ORDER BY ID DESC LIMIT ' . (($page-1) * $nbElementParPage). ',' . $nbElementParPage;
?>
et puis $mois = array('Janvier', 'Fevrier', ...);
$moisCourrant = $mois[date('n')];
$date = date('d') . ' ' . $moisCourrant . ' ' . date('Y H:i:s');
cs_lucas34990
Messages postés
10
Date d'inscription
mercredi 4 octobre 2006
Statut
Membre
Dernière intervention
19 juin 2009
-
Ton code est très sommaire, pas de commentaire ou autre, tu ne protége pas les mysql_query(); tu devrais mette : mysql_query() or die(mysql_error());
Les balises php : <? } ?>
Sa ne fonctionne pas toujours alors que : <?php } ?> fonctionne dans tout les cas.