Aller au contenu

[Résolu] limiter les résultats par page


Sujets conseillés

Posté

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

Posté (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é par snwoman49
Posté (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é par snwoman49
Posté

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.

Posté (modifié)

Perso je fais souvent comme ça:


<?php
//Nombre de résultat par page
$par_page = 10;

//la page actuelle
if( !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 maintenant
for( $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é par Boo2M0rs0
Posté

resalut, j'ai un probleme :D

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 :wacko:

quelle est mon erreur ? :D Merci

Posté

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 :fou:

Posté
ODER BY id DESC

Moi je flaire une faute d'orthographe ;)

Essaye avec ORDER on sait jamais :P

Posté

Joli !!!!!!!!!!!!!!!! merci !

fallait le voir ca ! là je dis bravo ! :D

Posté (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é par kezoo
Posté

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);

Posté

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

Posté (modifié)

merci bien, c'est super sympa :thumbup:

j'essaye dés que j'ai le temps et je vous dis quoi :D

Modifié par kezoo

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...