kezoo Posté 7 Août 2005 Posté 7 Août 2005 (modifié) Bonjour, j'aimerais trouver un code pour afficher seulement 10 résultats par page et un lien en dessous avec : page 1 - 2 - 3 ... (exemple à cet URL : http://www3.keohosting.net/yoyo210be/dwl_01.php ) Comment dois-je faire ? merci Modifié 8 Août 2005 par kezoo
snwoman49 Posté 7 Août 2005 Posté 7 Août 2005 Tu utilises une table mysql ou pas ,sinon avec sql tu faits LIMIT 0,10.
kezoo Posté 7 Août 2005 Auteur Posté 7 Août 2005 oui, j'utilise une table SQL, merci, mais je ne sais pas comment cela peut fonctionner automatiquement par rapport au nombre de résultats, il n'y aurais pas un code php pour ca ? merci
snwoman49 Posté 7 Août 2005 Posté 7 Août 2005 (modifié) Voici un petit code que je viens de te faire. <?php //tu mets ca dans le bas de ton tableau// $db = mysql_connect('localhost', 'pseudo', 'pass'); mysql_select_db('nom_de_la_base',$db); $sql= "SELECT COUNT(id) as test FROM `essaie_tbl` ORDER BY `id` DESC"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); $nb = $data['test']; if($nb >=0 && $nb <= 10) { echo"la le code de ton lien renseignant la page1"; } elseif($nb >=10 && $nb<=20) { echo"la le code de ton lien renseignant la page2"; } mysql_close($db); ?> //Pour ton lien tu le faits avec deux variabme d'en l'url de la forme mapage.php?debut=0&fin=10 //Ensuite dans la page du dessus tu fait un get sur ces 2 variables //$debut= $_GET[debut]; //$fin= $_GET[fin]; //Ensuite dans ta requete select tu faits ca: // "SELECT * FROM `test_tbl` LIMIT "$debut","$fin" ODER BY id DESC" // Et voila la logiquement ca marche. //a+ Modifié 7 Août 2005 par snwoman49
snwoman49 Posté 7 Août 2005 Posté 7 Août 2005 (modifié) Ah oui j'oubliais que is jamais c'est entre 10 et 20 par exemple il ne faut pas oublier de faire le premier lien entre 0 et 10 ca fera un <a href="mapage.php?debut=0&fin=10>1</a> et <a href="mapage.php?debut=10&fin=10>2</a> Modifié 7 Août 2005 par snwoman49
snwoman49 Posté 7 Août 2005 Posté 7 Août 2005 Parceque si tu veux la requete limit le premier chiffre veut dire que ca part du dixième trucs par exemple et le second chiffre veut dire que ca le déplace jusqu'au 10ème trucs suivant.
Boo2M0rs0 Posté 7 Août 2005 Posté 7 Août 2005 (modifié) Perso je fais souvent comme ça: <?php//Nombre de résultat par page$par_page = 10;//la page actuelleif( !isset($_GET['p'])) $page = int_val($_GET['p']);else $page = 0;//On compte le total de résultat de la requête$sql_total = mysql_query("SELECT count(*) FROM ta_table");$total = mysql_result($sql_total,0);//Le total de pages arrondi à l'unité supérieure$n_pages = ceil($total / $par_page);//On écrit le code pour chaque page maintenantfor( $i=0; $i < $n_pages; $i++){ if( $i == $page) //si c'est la page en cours echo ($i+1) . " -"; else echo "<a href=\"index.php?p=$i\">" . ($i+1) . "</a> -";}//Puis pour la requête qui affiches tes résultats$sql = "SELECT * FROM ta_table LIMIT " . ($page * $par_page) . " , $par_page"; ?> La boucle while peut être placée là où les différents liens vers les pages doivent apparaitrent. edit: boucle for, pas while:p Modifié 7 Août 2005 par Boo2M0rs0
kezoo Posté 7 Août 2005 Auteur Posté 7 Août 2005 resalut, j'ai un probleme voici ce qu'il me note : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in etc... on line 50 et voici ce qui se trouve dans les lignes 50-51... $retour = mysql_query('SELECT * FROM news LIMIT "$debut","$fin" ODER BY id DESC');while ($donnees = mysql_fetch_array($retour)) { je suis completement perdu quelle est mon erreur ? Merci
kezoo Posté 7 Août 2005 Auteur Posté 7 Août 2005 pour moi, c'est certainement l'hébergeur, car hier aussi, il m'affichait ce message et ce matin, Parti ! et aujourd'hui, il renote le meme style de message ou bien je suis fou
Sarc Posté 7 Août 2005 Posté 7 Août 2005 ODER BY id DESC Moi je flaire une faute d'orthographe Essaye avec ORDER on sait jamais
kezoo Posté 7 Août 2005 Auteur Posté 7 Août 2005 Joli !!!!!!!!!!!!!!!! merci ! fallait le voir ca ! là je dis bravo !
kezoo Posté 7 Août 2005 Auteur Posté 7 Août 2005 (modifié) re......bonjour, j'ai parfaitement su transmettre les variables grâce à GET : $debut= $_GET[debut]; $fin= $_GET[fin]; mais j'ai un probleme dans le query SQL : voici le code : $retour = mysql_query('SELECT * FROM news LIMIT "$debut","$fin" ORDER BY id DESC'); l'erreur vient certainement du rouge (car j'ai essayé avec echo et les données du get s'affichent correctement) et j'arrive toujours à un message d'erreur de ce genre : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in etc... on line 50 Quelqu'un peut m'aider ? peut-etre y a-t-il une erreur dans le code ? Modifié 7 Août 2005 par kezoo
Sarc Posté 7 Août 2005 Posté 7 Août 2005 Oui il y a une erreur, les apostrophes empêchent les variables de s'exprimer... Déjà, il vaut mieux séparer l'écriture de la requète avec son exécution, pour pouvoir afficher la requète le cas échéant.. Essaye avec ce code : $requete = "SELECT * FROM news LIMIT $debut, $fin ORDER BY id DESC";$retour = mysql_query($requete);
snwoman49 Posté 7 Août 2005 Posté 7 Août 2005 Et il faut mettre LIMIT après ORDER BY. Si tu veux voir un exemple en ligne du code va sur ce lien. ici Si tu as des questions n'hésite pas à me les poser
kezoo Posté 7 Août 2005 Auteur Posté 7 Août 2005 (modifié) merci bien, c'est super sympa j'essaye dés que j'ai le temps et je vous dis quoi Modifié 7 Août 2005 par kezoo
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant