Limite de page
Dernière réponse : dans Programmation
Bonjour,
Je voudrais savoir comment afficher une table sql sur une page php en faisant en sorte que une seule ligne de la page s'affiche et que les autres ligne de la table s'affiche en dessous de celle ci...
genre:
mysql_query('SELECT * FROM la_table ORDER BY id DESC LIMIT 0,1');
Donc ca affichera la dernière ligne ajouté. Comment afficher les ancienne sur une page différente?
J'èspère que j'ai été assez claire, j'arrive pas bien à expliquer. Merci d'avance
Je voudrais savoir comment afficher une table sql sur une page php en faisant en sorte que une seule ligne de la page s'affiche et que les autres ligne de la table s'affiche en dessous de celle ci...
genre:
mysql_query('SELECT * FROM la_table ORDER BY id DESC LIMIT 0,1');
Donc ca affichera la dernière ligne ajouté. Comment afficher les ancienne sur une page différente?
J'èspère que j'ai été assez claire, j'arrive pas bien à expliquer. Merci d'avance
Autres pages sur : limite page
Lassé par la pub ? Créez un compte
Bah c'est de la pagination classique quoi.
Tu regardes n'importe quel script de pagination il te donnera ce que tu veux, tu auras juste besoin de changer le nombre de réponses par page.
Ca reviendrait à une requête du type :
Tu regardes n'importe quel script de pagination il te donnera ce que tu veux, tu auras juste besoin de changer le nombre de réponses par page.
Ca reviendrait à une requête du type :
mysql_query('SELECT * FROM la_table ORDER BY id DESC LIMIT '.($page-1).',1');
Bah c'est simple...
1) Tu comptes le nombre d'éléments dans ta bdd, ce qui sera le nombre de pages que tu auras
2) tu passes un paramètre $_GET['page'] avec le numéro de la page que tu veux avoir. Si ce paramètre n'existe pas, tu mets $page = 0. Si ce paramètre est plus grand que le nombre de pages que tu as, tu le mets égal au nombre de pages que tu as.
3) tu fais le mysql_query() que je t'ai donné plus haut, avec la variable $_GET['page'], ce qui va te retourner le "$_GET['page']"ième élément (moins un, vu que ça commence à 0) de ta base.
4) les boutons suivants et précédents seront égaux à $_GET['page']+1 et $_GET['page']-1
C'est un algo tout con il me semble
1) Tu comptes le nombre d'éléments dans ta bdd, ce qui sera le nombre de pages que tu auras
2) tu passes un paramètre $_GET['page'] avec le numéro de la page que tu veux avoir. Si ce paramètre n'existe pas, tu mets $page = 0. Si ce paramètre est plus grand que le nombre de pages que tu as, tu le mets égal au nombre de pages que tu as.
3) tu fais le mysql_query() que je t'ai donné plus haut, avec la variable $_GET['page'], ce qui va te retourner le "$_GET['page']"ième élément (moins un, vu que ça commence à 0) de ta base.
4) les boutons suivants et précédents seront égaux à $_GET['page']+1 et $_GET['page']-1
C'est un algo tout con il me semble
Oui je sais quand on connais on dirais que les autres son idiot de pas comprendre...
Donc:
Bon dois avoir des méchante faute mais comme j'ai dis plus haut je suis pas expert! Merci de ton aide omar!
<?php require ('../config.php'); mysql_connect ("$host", "$bdd", "$pass"); mysql_select_db ("$bdd"); $retour = mysql_query('SELECT * FROM kit_animaux ORDER BY id DESC LIMIT 0,1'); while ($donnees = mysql_fetch_array($retour)) { echo '...'; } mysql_close(); ?>
Donc:
Citation :
1) Tu comptes le nombre d'éléments dans ta bdd, ce qui sera le nombre de pages que tu auras
$row = mysql_num_rows($retour);
Citation :
2) tu passes un paramètre $_GET['page'] avec le numéro de la page que tu veux avoir. Si ce paramètre n'existe pas, tu mets $page = 0. Si ce paramètre est plus grand que le nombre de pages que tu as, tu le mets égal au nombre de pages que tu as.
$_GET['page'] = $row; if ($page == 0) { echo "0"; } else { if ($row > &page) { echo $row; } else {
Citation :
3) tu fais le mysql_query() que je t'ai donné plus haut, avec la variable $_GET['page'], ce qui va te retourner le "$_GET['page']"ième élément (moins un, vu que ça commence à 0) de ta base.
$retour = mysql_query('SELECT * FROM kit_animaux ORDER BY id DESC LIMIT '.($page-1).',1');
Citation :
4) les boutons suivants et précédents seront égaux à $_GET['page']+1 et $_GET['page']-1
$suivant = $_GET['page']+1; $precedent = $_GET['page']-1; echo "<a href=\"$suivant\">Page suivante</a>";
Bon dois avoir des méchante faute mais comme j'ai dis plus haut je suis pas expert! Merci de ton aide omar!
Ok. Désolé de dire que ça me semble simple... mais bon, voilà... quand je vois que tu aides quand même quelques personnes, je trouve ça bizarre que tu ne fasses pas ça (pas pour te dénigrer hein, y'a des choses toutes connes que je ne sais pas faire...) j'ai appris récemment que tu pouvais utiliser { } dans une chaine de caractère pour délimiter une variable.
Exemple :
Bref, revenons en à nos moutons
Sans tester, j'aurais dit quelque chose du genre :
(désolé s'il manque une parenthèse ou un crochet ou que y'a une erreur, mais là j'ai que le bloc notes sous la main, c'est difficile pour se rendre compte)
Et ça devrait le faire théoriquement ^^
Exemple :
<? $tab[1]['toto'] = 'tata'; echo "ma variable : {$tab[1]['toto']}"; ?>
Bref, revenons en à nos moutons
Sans tester, j'aurais dit quelque chose du genre :
<?php require ('../config.php'); mysql_connect ("$host", "$bdd", "$pass"); mysql_select_db ("$bdd"); $retour = mysql_query('SELECT * FROM kit_animaux ORDER BY id DESC'); // tu peux arranger la requête, on veut juste retourner le nombre d'éléments, pas besoin d'order by, et de select * $nb_elts = mysql_num_rows($retour); // on récupère le nombre d'éléments if(isset($_GET['page']) && isnumeric($_GET['page']) && $_GET['page'] >= 1) { // on regarde si la variable get page est définie et si c'est un nombre supérieur à 1 // si la valeur est supérieure à la valeur maximale (le nombre d'éléments retourné par la requête divisé par le nombre d'éléments par page (dans ton cas le nombre d'éléments par page est égal à 1, donc ça ne sert pas de le mettre, mais c'est un bout de l'algo si un jour tu veux passer à 2 par page, ou plus)) alors on met la valeur maximale, sinon la valeur passée en GET $page = ($_GET['page'] > ($nb_elts /1) ? $nb_elts : $_GET['page']; } else { $page = 1; } // maintenant tu as le numéro de page que tu veux, donc tu récupères l'élément de cette page dans la base de données : $retour = mysql_query('SELECT * FROM kit_animaux ORDER BY id DESC LIMIT '.($page-1).', 1'); // on prend $page-1, comme ça, si le numéro de page est 1, on retourne 0, soit la première ligne, etc... $row = mysql_fetch_array($retour); // tu as maintenant dans ta variable (de type array) $row toutes les données retournées (une ligne SQL quoi) mysql_close(); // tu peux afficher ta pagination après : if($page > 1) { echo '<a href="?page='.$page-1.'">Page précédente</a>'; } if($nb_elts > $page) { echo '<a href="?page='.$page+1.'">Page suivante</a>'; } ?>
(désolé s'il manque une parenthèse ou un crochet ou que y'a une erreur, mais là j'ai que le bloc notes sous la main, c'est difficile pour se rendre compte)
Et ça devrait le faire théoriquement ^^
Merci
Y'a un ptit problème avec cette ligne
Tu vois une faute?
$nb_elts car j'ai fais un echo et il m'affiche bien le nombr de ligne dans ma table.
Y'a un ptit problème avec cette ligne
if(isset($_GET['page']) && isnumeric($_GET['page']) && $_GET['page'] >= 1)) { $page = $_GET['page'] > ($nb_elts /1) ? $nb_elts:$_GET['page']; } else { $page = 1; }
Tu vois une faute?
$nb_elts car j'ai fais un echo et il m'affiche bien le nombr de ligne dans ma table.
Bon bah voilà le résultat...
http://www.allstar27.123.fr/kits/animaux.php
J'ai deux ligne dans ma table. test 1 et test 2
http://www.allstar27.123.fr/kits/animaux.php
J'ai deux ligne dans ma table. test 1 et test 2
Bah oui $page n'a pas de valeur...
<?php require ('../config.php'); mysql_connect ("$host", "$bdd", "$pass"); mysql_select_db ("$bdd"); $retour = mysql_query('SELECT * FROM kit_animaux'); $nb_elts = mysql_num_rows($retour); if(isset($_GET['page']) && isnumeric($_GET['page']) && $_GET['page'] >= 1) { $page = ($_GET['page'] > ($nb_elts /1)) ? $nb_elts : $_GET['page']; } else { $page = 1; } $retour2 = mysql_query('SELECT * FROM kit_animaux ORDER BY id DESC LIMIT '.($page-1).', 1'); while ($donnees = mysql_fetch_array($retour2)) { echo '...'; } mysql_close(); if($page > 1) { echo '<a href="?page=$page-1">Page précédente</a>'; } if($nb_elts > $page) { echo '<a href="?page=$page+1">Page suivante</a>'; } ?>
c'est pas que $page n'a pas de valeur, c'est que $page devrait être interprété par PHP, or vu que tu n'as pas mis ce que j'avais mis pour précédent et suivant, (fallait peut-être ajouter des () pour que ça fonctionne), la variable n'est pas parsée.
Fais des echo de $page pour voir la valeur qu'elle a pris après le else { $page = 1; }
Affiche ta requête aussi, qu'on puisse voir où ça bug.
Fais des echo de $page pour voir la valeur qu'elle a pris après le else { $page = 1; }
Affiche ta requête aussi, qu'on puisse voir où ça bug.
Quand je fais echo '$page';
Il m'affiche $page
Il m'affiche $page
<?php require ('../config.php'); mysql_connect ("$host", "$bdd", "$pass"); mysql_select_db ("$bdd"); $retour = mysql_query('SELECT * FROM kit_animaux'); $nb_elts = mysql_num_rows($retour); if(isset($_GET['page']) && isnumeric($_GET['page']) && $_GET['page'] >= 1) { $page = ($_GET['page'] > ($nb_elts /1)) ? $nb_elts : $_GET['page']; } else { $page = 1; } $retour2 = mysql_query('SELECT * FROM kit_animaux ORDER BY id DESC LIMIT '.($page-1).', 1'); while ($donnees = mysql_fetch_array($retour2)) { echo '<table width="100%"> <tr> <td align="center" colspan="2"><h2>'.$donnees['titre'].'</h2></td> </tr> <tr> <td id="col1"><a href="'.$donnees['img'].'" target="_blank"><img src="'.$donnees['img'].'" width="150px" heigth="112px" alt="'.$donnees['titre'].'" /></a></td> <td id="col2">'.$donnees['description'].'<br /> <span style="color: #0aaafd">Auteur</span>: '.$donnees['auteur'].'</td> </tr> <tr> <td align="center" colspan="2"><a href="../achat.php?id='.$donnees['id'].'" onclick="window.open(this.href, \'Commentaire\', \'height=500, width=600, top=100, left=100, toolbar=no, menubar=yes, location=no, resizable=no, scrollbars=yes, status=no\'); return false;"><img src="../images/achat.png" width="110px" height="30px" alt="Acheter" /></a></td> </tr> </table> </div> <div class="meta"> <p class="date">Ajouté le '.$donnees['timestamp'].'</p> <p class="file"><a href="../comment/add_com.php?id='.$donnees['id'].'" onclick="window.open(this.href, \'Commentaire\', \'height=400, width=500, top=100, left=100, toolbar=no, menubar=yes, location=no, resizable=no, scrollbars=no, status=no\'); return false;">Posté un commentaire</a> | <a href="../comment/view_com.php?id='.$donnees['id'].'" onclick="window.open(this.href, \'Commentaire\', \'height=400, width=500, top=100, left=100, toolbar=no, menubar=yes, location=no, resizable=no, scrollbars=no, status=no\'); return false;">28 Commentaires</a></p>'; } mysql_close(); if($page > 1) { echo '<a href="?page=$page-1">Page précédente</a>'; } if($nb_elts > $page) { echo '<a href="?page=$page+1">Page suivante</a>'; } ?> </p>
Bah non pas la peine !
Affiche la valeur de $page une fois qu'il est traité par
qu'on puisse voir la valeur qu'il prend en fonction du paramètre $_GET['page']. C'est bizarre qu'il ne fonctionne pas !
Affiche la valeur de $page une fois qu'il est traité par
# if(isset($_GET['page']) && isnumeric($_GET['page']) && $_GET['page'] >= 1) { # # $page = ($_GET['page'] > ($nb_elts /1)) ? $nb_elts : $_GET['page'];
qu'on puisse voir la valeur qu'il prend en fonction du paramètre $_GET['page']. C'est bizarre qu'il ne fonctionne pas !
Lassé par la pub ? Créez un compte
- Contenus similaires :
- SolutionsYoutube limite taille
- Forumune page internet s'ouvre toute seule "RESOLU"
- SolutionsAccéder à mon deuxième disque dur depuis un compte limité (Win XP)
- SolutionsImprimer sous compte Limité (Windows XP Familial sp3)
- SolutionsProbleme acces limité à ma neuf box
- SolutionsSignal entré hors limite [Résolu]
- Forumcomment devenir administrateurs si on n'a un compte limité
- ForumConnexion wifi livebox Accès limité
- SolutionsOu trouver un logiciel pour modifier le vcore sans limite ?
- Voir plus