Pb LIMIT dans requete SQL

[Résolu]
Signaler
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013
-
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013
-
Bonjour,

j'ai un probleme avec l'affichage d'une gallerie photo.
j'affiche les miniatures, 24 par pages (6 lignes de 4 photos) avec pagination, ceci fonctionne.

pour test j'ai uploader 53 photos, ce qui, normalement, doit faire 2 pages completes et une page de 5 photos.

la premiere et la troisieme page s'affiche correctement, mais la deuxieme page m'affiche son contenu + le contenu de la troisieme, soit 29 photos.

A priori le pb viens du LIMIT dans ma requete SQL

voici le code utilisé :

$p --> numero de la page

$limit = $p - 1;
$nbphotos_parpage = 24;
$nbphotos_parligne = 4;

$limit_d = $limit * $nbphotos_parpage;   // (numero de la page-1) X 24
$limit_f = $p * $nbphotos_parpage;        // numero de la page X 24

$sql10 = mysql_query("SELECT num FROM N_photos LIMIT '$limit_d','$limit_f''");
--> Affichage des photos

ce qui donne pour page 1 :
SELECT num FROM N_photos LIMIT '0','24'
page 2 :
SELECT num FROM N_photos LIMIT '24','48'
page 3 :
SELECT num FROM N_photos LIMIT '48','72'

pour la page 1 : cela m'affiche de la 1ère photo à la 24ème
pour la page 2 : cela m'affiche de la 25ème photo à la 53ème   !!!!!  POURQUOI ????
pour la page 3 : cela m'affiche de la 49ème photo à la 53ème

j'ai testé SELECT num FROM N_photos LIMIT '24','48' directement sur l'interface de ma BDD, et ça me sort la même chose, je ne comprends pas !

Si qqn peux m'aider, merci.

JOEBUZ

5 réponses

Messages postés
137
Date d'inscription
jeudi 18 juillet 2002
Statut
Membre
Dernière intervention
20 novembre 2016

slt
page 2:
SELECT num FROM N_photos LIMIT '24','24'
@+
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

ok, MERCIIIIIIIIIiiiiiiiiiiiiiiiii !!

je pensais que les deux chiffres du LIMIT etait le debut et la fin !

a koi servent-ils alors ?
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Bonsoir,

Le premier est le numéro du premier enregistrement X que tu veux sélectionner, le deuxième est le nombre Y d'enregistrements que tu ceux sélectionner à partir de l'enregistrement X.

à+
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
PS: du coup ça veut dire que tu dois modifier la troisième requête aussi.
Messages postés
321
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
21 février 2013

ok merci, pour les réponses.

pas de soucis pour la troisieme requete, en fait c'est la meme que les deux autres, comme j'affiche des photos uploader par les membres, je ne sais pas combien a chaque affichage (là j'en ai enregistré 53 pour essai)

voici mon script :

$p --> numero de la page

$limit = $p - 1;
$nbphotos_parpage = 24;
$nbphotos_parligne = 4;
$limit_d = $limit * $nbphotos_parpage;
$limit_f = $nbphotos_parpage;

$sql10 = mysql_query("SELECT num FROM N_photos LIMIT ".$limit_d.",".$limit_f."");
  while($nb = mysql_fetch_array($sql10)){
  $incr = ++$incr;     // nb de photos à afficher pour la page
  }
  
  $nb_lign = intval($incr / $nbphotos_parligne);
  $diff = $incr-($nb_lign * $nbphotos_parligne);
  
  $dern_lign = $incr - $diff;  // nb de photos a afficher pour la derniere ligne

  ...
  ---Affichage des photos ---
  ...






   if($nb_photos > $nbphotos_parpage){
   $page = ++$page;
   echo " | ".$page."";
   $nb_photos = 1;
   }
  }