Comment faire un truc comme ca ? - SQL/NoSQL - Programmation
Marsh Posté le 09-08-2003 à 12:27:28
Oué, j'ai pas été très clair  
 
 
Alors : 
SELECT id FROM bidule LIMIT 0,30 par exemple. 
 
Ca me ressort les ID de 65 a 95 on va dire  
 
 
L'ID 65 a la place 1, le 75 la place 10, ... , le 95 la place 30 
Marsh Posté le 09-08-2003 à 12:28:11
On ne maintient pas le numéro de page dans la base de donnée. Il faut le calculer à chaque fois 
 
Car sinon tu auras des pages de tailles différentes, etc...  
Quand tu annuleras un id, il te faudra décaler le tout, etc... 
 
$query  = "SELECT * FROM matable ORDER BY id DESC LIMIT (($pagecourante+1) *5), 5 " ; 
 
J'espère que tu piges l'astuces. Il faut donner au LIMIT le début à partir duquel, et la quantité. 
 
si $pagecourate vaut 4, ça fait donc LIMIT 25, 5 soit l'élément 25,26,27,28,29 
Marsh Posté le 09-08-2003 à 12:33:19
| JagStang a écrit : On ne maintient pas le numéro de page dans la base de donnée. Il faut le calculer à chaque fois  | 
 
 
J'avoue ne pas avoir compris le rapport avec mon truc 
Marsh Posté le 09-08-2003 à 12:35:56
je résume pour toi alors 
 
Ne maintiens pas la page dans la base de donnée
Marsh Posté le 09-08-2003 à 12:37:23
Ca marche très bien avec un champ PAGE, je ne vois pas le pb 
Marsh Posté le 09-08-2003 à 12:38:02
Tu passe des variables dans les pages 
du style page.php?p=4 
 
tu récupère cette valeur dans la requete et voilà 
Je peux pas être plus clair
Marsh Posté le 09-08-2003 à 12:38:34
Sur 1 000 000 d'enregistrements, ce n'est pas le plus rapide ...
Marsh Posté le 09-08-2003 à 12:39:35
| Max Evans a écrit : Ca marche très bien avec un champ PAGE, je ne vois pas le pb  | 
 
 
MAINTENIR 
 
tu annules le premier de la page 1, tu dois te tapper un trigger (qui n'existe pas en MySQL) pour corriger les autres derrières 
 
Pour rappel, on ne stock dans une bd uniquement ce que ne peut PAS calculer !!! 
 
par exemple, on ne stock pas le total d'une facture, etc
Marsh Posté le 09-08-2003 à 12:40:27
| JagStang a écrit :   | 
 
 
Ca marche EXTREMEMENT BIEN chez moi vu que la page de l'enregistrement ne change pas par la suite !
Marsh Posté le 09-08-2003 à 12:41:11
| Max Evans a écrit : Sur 1 000 000 d'enregistrements, ce n'est pas le plus rapide ...  | 
 
 
aucun problème avec le LIMIT crois-moi
Marsh Posté le 09-08-2003 à 12:42:14
Gros pb de LIMIT au contraire  
 
 
http://forum.hardware.fr/forum2.ph [...] h=&subcat= 
 
PS : Ce n'est pas exactement la meme requete, mais le principe est la 
Marsh Posté le 09-08-2003 à 12:43:57
| Max Evans a écrit : Gros pb de LIMIT au contraire  | 
 
 
Le problème vient que l'index n'est pas ordonné. pas du limit 
Marsh Posté le 09-08-2003 à 12:44:31
| JagStang a écrit :   | 
 
 
C'est la meme chose ici donc  
 
Mais bon, ca marche tres bien, le pb n'est pas la 
Marsh Posté le 09-08-2003 à 12:46:17
| Max Evans a écrit :   | 
 
 
Alors tant mieux pour toi et désolé de t'avoir aidé   
 
Marsh Posté le 09-08-2003 à 12:47:38
  
  
 
Le pb n'était pas situé a ce niveau ! 
Mais tjs un souci pour recuperer la place des enregistrements 
Marsh Posté le 09-08-2003 à 13:38:04
c'est pour la page des sujets ? si tu supprimes un sujet, tu te retrouves avec une page avec un sujet en moins, donc comment tu fais ?
Marsh Posté le 09-08-2003 à 14:36:59
Y'a pas un truc genre "rownum" comme avec Oracle ? 
-> Ca retourne un autoincrément pour chaque ligne, correspondant à la position dans le résultat
Marsh Posté le 09-08-2003 à 14:37:51
| Limit a écrit : c'est pour la page des sujets ? si tu supprimes un sujet, tu te retrouves avec une page avec un sujet en moins, donc comment tu fais ?  | 
 
 
Non non, page des posts 
Marsh Posté le 09-08-2003 à 14:38:00
| MagicBuzz a écrit : Y'a pas un truc genre "rownum" comme avec Oracle ?  | 
 
 
Connais po ca 
Marsh Posté le 09-08-2003 à 14:48:38
| Max Evans a écrit :   | 
et bien, imagine ton message a 5pages. qqn supprime son message dans la page 2, alros la page 2 a un message en moins ?
Marsh Posté le 09-08-2003 à 14:49:30
| Limit a écrit :  et bien, imagine ton message a 5pages. qqn supprime son message dans la page 2, alros la page 2 a un message en moins ?  | 
 
 
Ha merde, pas con  ![[:psychokwak] [:psychokwak]](https://forum-images.hardware.fr/images/perso/psychokwak.gif) 
 
Marsh Posté le 09-08-2003 à 15:59:50
| Citation :   | 
 
 
 
cf ma première intervention... 
 
| Citation :   | 
Marsh Posté le 09-08-2003 à 17:09:04
| JagStang a écrit : 
   
   | 
 
 
Autant pour moi, je n'avais pas bien compris  
 
 
Toutes mes excuses, encore une fois,désolé 
Marsh Posté le 11-08-2003 à 15:04:38
je sais pas si tu pourras faire ce que tu veux en 1 seule requête, mais en 2, voilà ce que tu peux faire :* 
- 1 première requête pour récupérer dans une variable les ID à modifier, 
- 1 seconde requête pour mettre à jour les ID contenu dans ta variable tableau.
Marsh Posté le 09-08-2003 à 11:56:28
Hello à tous 
 
 
 
 
 
 
 
 
 
 
 
 
 
J'ai un petit pb la, je pense pas que se soit tres compliqué, mais je bloque
En fait, j'ai une table qui content 150 enregistrements
J'ai un SELECT ... LIMIT $machin,30
Ce que je veux :
Si la place de l'enregistrement est comprise entre 0 et 30, alors j'UPDATE le champ PAGE en lui donnant la valeur 1.
Si la place de l'enregistrement est comprise entre 31 et 60, alors j'UPDATE le champ PAGE en lui donnant la valeur 2.
Etc etc
J'insiste bien sur la place de l'enregistrement, pas sur l'ID de l'enregistrement
J'espere avoir été clair
Merci a tous