Hvordan kan jeg finde værdien på id'en før og efter en aktuel id?
Jeg har et arkiv hvor brugeren kan tildele et emne en højere eller lavere placering i listen, altså skal den skifte id med emnet før eller efter, alt efter hvad brugeren ønsker. Push pull???
Jeg er ikke helt sikker på hvad du mener, men jeg mener at forstå, at dine brugere skal kunne arrangere en liste efter deres egen prioitet.
hvis det er korrekt opfattet, behøver du ikke bruge deres id hvis systemet er lavet smart.
hvis din tabel (subjects) ser således ud:
emne,bruger,placering,id
hvor emner er emnet er emnet, bruger er ejer og placering er dens placering på listen, kan det gøres således, idet vi antager at emnet med id = 3 med placering = $placering rykkes:
Ryk ned:
mysql_query("UPDATE subjects SET placering = placering - 1 WHERE placering = $placering + 1");
mysql_query("UPDATE subjects SET placering = $placering + 1 WHERE id = 3");
Ryk op:
mysql_query("UPDATE subjects SET placering = placering + 1 WHERE placering = $placering - 1");
mysql_query("UPDATE subjects SET placering = $placering - 1 WHERE id = 3");
Har ikke testet det, men det burde virke.
husk: Du skal bruge placering og id på det indlæg som flyttes.
P.S. Denne model kan give problemer ved brug af unikke nøgle-par i f.eks. PostgreSQL
Indlæg senest redigeret d. 14.08.2006 21:44 af Bruger #4683