Pb LIMIT dans requete SQL

Résolu
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013 - 5 mars 2008 à 20:51
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013 - 5 mars 2008 à 22:15
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

bcmfr Messages postés 137 Date d'inscription jeudi 18 juillet 2002 Statut Membre Dernière intervention 20 novembre 2016
5 mars 2008 à 21:02
slt
page 2:
SELECT num FROM N_photos LIMIT '24','24'
@+
3
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
5 mars 2008 à 21:29
ok, MERCIIIIIIIIIiiiiiiiiiiiiiiiii !!

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

a koi servent-ils alors ?
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
5 mars 2008 à 21:36
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.

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_joebuz Messages postés 321 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 21 février 2013
5 mars 2008 à 22:15
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;
   }
  }
0
Rejoignez-nous