yunie77
Messages postés15Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention13 avril 2006
-
22 nov. 2005 à 20:26
yunie77
Messages postés15Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention13 avril 2006
-
6 déc. 2005 à 20:21
bonsoir à tous,
j'ai un problème sur ma pagination. je veux mettre seulement 5 news par page, mais toutes les news apparaissent a chaque fois. si je met un LIMIT 0,5 dans ma requete sql. j'ai bien mais 5 news mais les autres n'apparaissent tjrs pas dans les autres pages.
le code est le suivant :
<?php
//partie de connexion a la bdd
$serveur = "localhost";
$login = "root";
$pass = "";
$connexion = mysql_connect( $serveur, $login, $pass );
mysql_select_db( "news", $connexion );
//********** Fin de la partie connexion **********\\
$nbParPage = 3;
//on effectue la requète sur l'objet que l'on souhaite paginer ( ici des news )
$req1=mysql_query("SELECT id_news, nom_redacteur, titre_news, message_news, date_news
FROM redacteur, news
ORDER BY date_news DESC;");
$nbNews=mysql_numrows($req1);
//$nbnews=$nbnews[0];
echo "il y a $nbNews";
//On calcule le nombre de numéro à afficher en fonction du nombre de news par
//page en arrondissant au nombre supérieur grace a la fonction ceil.
$moy= ceil($nbNews/$nbParPage);
echo "
et il y aura $moy page
";
//*********** Partie concernant le "bouton" précedent ***********\\
//on vérifie qu'il y a au minimum 2 page a afficher pour utiliser
//la fonction Suivant / précédent
if ($moy>=2)
{
//on vérifie l'éxistence de la variable page avant les vérifications
if (isset($_GET['page']))
{
//si $_GET['page'] = 1 alors on est a la première page et donc pas besoins
//de lien vers la précédente qui n'éxiste pas
if ($_GET['page']==1){echo "Precedent ";}
//sinon on met le lien en ajoutant +1 page a la page courante
else
{
echo "Precedent ";
}
}
else{echo "Precedent ";}
}
//*********** fin de la partie concernant le "bouton" précedent ***********\\
//prenons un exemple concret :
// nous avons 10 news dans la base
// a ce moment nous savons donc qu'il y aura 2 page :
// $nbNews 10 divisé par 5 ( 5 news par page ) 2 pages.
// on peut déja afficher les numéros :
// on effectue une boucle tant qu'il y a des pages on ajoute un lien
for ($i=0;$i<$moy;$i++)
{
// on ajoute 1 a $i pour afficher 1-2-3-... au lieu de 0-1-2-3-...
echo " Page ".($i+1)." ";
}
//*********** Partie concernant le "bouton" suivant ***********\\
//on vérifie qu'il y a au minimum 2 page a afficher pour utiliser
//la fonction Suivant / précédent
if ($moy>=2)
{
//on vérifie l'éxistence de la variable page avant les vérifications
if (isset($_GET['page']))
{
//si $_GET['page'] = $moy alors on est a la dernière page et donc pas besoins
//de lien vers la suivante qui n'éxiste pas
if ($_GET['page']==$moy){echo " Suivant";}
//sinon on met le lien en ajoutant +1 page a la page courante
else
{
echo " Suivant";
}
echo "
La page courante est :".$_GET['page']."";
}
else{echo "Suivant";}
}
//*********** fin de la partie concernant le "bouton" Suivant ***********\\
while ($tab = mysql_fetch_array($req1))
{
$nom = $tab[1];
$titre= $tab[2];
$message = $tab[3];
$date_tmp = explode(" ", $tab[4]);
$date_tmp2 = explode("-", $date_tmp[0]);
$heure = $date_tmp[1]; //explode decoupe la chaine en tableaux en separant la ou il y a des -
$date = array_reverse($date_tmp2);
//affichage des informations dans un formulaire précomplété
echo "".$tab[2].",
".$date[0]."/".$date[1]."/".$date[2]." ".$heure.",
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 22 nov. 2005 à 21:22
21 ans c'est intéressant ça ^^ (t'es d'où dans le 77 ?) si tu connais Chelles (on sait jamais lol...)
Bref non tu fais une seule requête avec LIMIT debut,nombre_d'enregistrements_retourné
exemple si tu veux commencer au 10 ème enregistrement et retourner 5 enregistrements :
SELECT blabla FROM table WHERE machin LIMIT 10,5
mais bon... faudrait éviter de passer par un limit et bosser sur le champ id unique, ça serait largement plus efficace.
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Vous n’avez pas trouvé la réponse que vous recherchez ?
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 23 nov. 2005 à 23:50
J'imagine de mon chez moi le cours type d'Antho à domicile :
Elle : "Dis moi, ou est-ce que c'est faux dans mon code ?"
Lui : "Alors pour commencer, tu dois utiliser echo() avec des '' et non des "". Ensuite, on n'utilise plus
mais
. Après, c'est mieux d'utiliser mysql_fetch_row que mysql_fetch_array..."
etc... :)
Et après, ca fini en geek attitude :p
Lui : "Est ce que je peux te query quelque chose ?"
Elle : "Heu .... oui ?"
Lui (fait dans sa tête une forme de syntaxe SQL de type SELECT) : "Est ce que tu es seule ?"
Elle : "Oui pourquoi ?"
Lui (utilise la fonction de fetch_row afin de comprendre la réponse donnée) : "Non comme ca ... :)"
Lui ( fait un tas de query type SELECT pour en savoir un maximum ! )
...
...
Lui (fait sans le vouloir un die() ce qui causa un arrêt immédiat de la discussion) : "Fatal error : Exception stack at line 9383749 > More memory is needed : 16Mb needed more. Program Halted."
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 24 nov. 2005 à 10:26
FhX > ça serait pas du tout comme ça, tout d'abord résolution du problème façon geek (rapidement quoi) tout en expliquant la résolution le moins possible si elle est jolie comme ça je reviens chez elle après (lol) et ensuite ça se termine ailleurs que devant le PC ^^
yunie77
Messages postés15Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention13 avril 2006 24 nov. 2005 à 21:00
j'ai utilisée mysql_fetch_row, j'ai encore fait une boucle pour afficher toutes les news mais je vois pas ce qu'il fo faire pour afficher le reste dans la seconde page :'( HELP ME please