Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
729 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Comment faire un truc comme ca ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment faire un truc comme ca ?

n°481947
Max Evans
Posté le 09-08-2003 à 11:56:28  profilanswer
 

Hello à tous :hello:
 
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 ;) :jap:

mood
Publicité
Posté le 09-08-2003 à 11:56:28  profilanswer
 

n°481955
Limit
Posté le 09-08-2003 à 12:23:10  profilanswer
 

c'est quoi que tu appelles "la place" ?

n°481957
Max Evans
Posté le 09-08-2003 à 12:27:28  profilanswer
 

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


Message édité par Max Evans le 09-08-2003 à 12:27:56
n°481958
jagstang
Pa Capona ಠ_ಠ
Posté le 09-08-2003 à 12:28:11  profilanswer
 

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


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°481961
Max Evans
Posté le 09-08-2003 à 12:33:19  profilanswer
 

JagStang a écrit :

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
 


 
J'avoue ne pas avoir compris le rapport avec mon truc :??:

n°481963
jagstang
Pa Capona ಠ_ಠ
Posté le 09-08-2003 à 12:35:56  profilanswer
 

je résume pour toi alors
 
Ne maintiens pas la page dans la base de donnée


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°481964
Max Evans
Posté le 09-08-2003 à 12:37:23  profilanswer
 

Ca marche très bien avec un champ PAGE, je ne vois pas le pb :??:

n°481966
jagstang
Pa Capona ಠ_ಠ
Posté le 09-08-2003 à 12:38:02  profilanswer
 

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


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°481967
Max Evans
Posté le 09-08-2003 à 12:38:34  profilanswer
 

Sur 1 000 000 d'enregistrements, ce n'est pas le plus rapide ...

n°481968
jagstang
Pa Capona ಠ_ಠ
Posté le 09-08-2003 à 12:39:35  profilanswer
 

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


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
mood
Publicité
Posté le 09-08-2003 à 12:39:35  profilanswer
 

n°481969
Max Evans
Posté le 09-08-2003 à 12:40:27  profilanswer
 

JagStang a écrit :


 
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


 
Ca marche EXTREMEMENT BIEN chez moi vu que la page de l'enregistrement ne change pas par la suite !

n°481971
jagstang
Pa Capona ಠ_ಠ
Posté le 09-08-2003 à 12:41:11  profilanswer
 

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


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°481973
Max Evans
Posté le 09-08-2003 à 12:42:14  profilanswer
 

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

n°481974
jagstang
Pa Capona ಠ_ಠ
Posté le 09-08-2003 à 12:43:57  profilanswer
 

Max Evans a écrit :

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


 
Le problème vient que l'index n'est pas ordonné. pas du limit


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°481975
Max Evans
Posté le 09-08-2003 à 12:44:31  profilanswer
 

JagStang a écrit :


 
Le problème vient que l'index n'est pas ordonné. pas du limit
 


 
C'est la meme chose ici donc ;)
Mais bon, ca marche tres bien, le pb n'est pas la :D

n°481977
jagstang
Pa Capona ಠ_ಠ
Posté le 09-08-2003 à 12:46:17  profilanswer
 

Max Evans a écrit :


 
C'est la meme chose ici donc ;)
Mais bon, ca marche tres bien, le pb n'est pas la :D


 
Alors tant mieux pour toi et désolé de t'avoir aidé  :kaola:


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°481978
Max Evans
Posté le 09-08-2003 à 12:47:38  profilanswer
 

:pt1cable:  
 
Le pb n'était pas situé a ce niveau !
Mais tjs un souci pour recuperer la place des enregistrements :)

n°481988
Taz
bisounours-codeur
Posté le 09-08-2003 à 13:08:41  profilanswer
 

titre pourri  [:taz]

n°481990
Max Evans
Posté le 09-08-2003 à 13:10:23  profilanswer
 

Taz a écrit :

titre pourri  [:taz]  


 
 :whistle:

n°482007
Limit
Posté le 09-08-2003 à 13:38:04  profilanswer
 

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 ?

n°482023
MagicBuzz
Posté le 09-08-2003 à 14:36:59  profilanswer
 

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

n°482024
Max Evans
Posté le 09-08-2003 à 14:37:51  profilanswer
 

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

n°482025
Max Evans
Posté le 09-08-2003 à 14:38:00  profilanswer
 

MagicBuzz a écrit :

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


 
Connais po ca :(

n°482027
Limit
Posté le 09-08-2003 à 14:48:38  profilanswer
 

Max Evans a écrit :


 
Non non, page des posts :)

et bien, imagine ton message a 5pages. qqn supprime son message dans la page 2, alros la page 2 a un message en moins ?

n°482028
Max Evans
Posté le 09-08-2003 à 14:49:30  profilanswer
 

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]

n°482041
jagstang
Pa Capona ಠ_ಠ
Posté le 09-08-2003 à 15:59:50  profilanswer
 

Citation :


et bien, imagine ton message a 5pages. qqn supprime son message dans la page 2, alros la page 2 a un message en moins ?


 
 
cf ma première intervention...
 

Citation :


Car sinon tu auras des pages de tailles différentes, etc...  
Quand tu annuleras un id, il te faudra décaler le tout, etc...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°482060
Max Evans
Posté le 09-08-2003 à 17:09:04  profilanswer
 

JagStang a écrit :

Citation :


et bien, imagine ton message a 5pages. qqn supprime son message dans la page 2, alros la page 2 a un message en moins ?


 
 
cf ma première intervention...
 

Citation :


Car sinon tu auras des pages de tailles différentes, etc...  
Quand tu annuleras un id, il te faudra décaler le tout, etc...




 
Autant pour moi, je n'avais pas bien compris :(
 
Toutes mes excuses, encore une fois,désolé ;)

n°483540
rufo
Pas me confondre avec Lycos!
Posté le 11-08-2003 à 15:04:38  profilanswer
 

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.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Comment faire un truc comme ca ?

 

Sujets relatifs
[PHP] Un regex simple et un truc plus dur...Recherche manuel ou truc dans le style
[DHTML] Un truc qui pourrait intéresser du monde : Autocomplete manuelUn truc trop fort sur Google
[MySQL] WHERE 'blabla' compris dans le champ trucPtit truc pratique en PHP
<cstring> comprend pas un truc sur strcpy[C++] Malloc et Free ... truc que je pige pas
[php] appeler une fonction dans une regexp ou un truc du genre :d 
Plus de sujets relatifs à : Comment faire un truc comme ca ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR