Avatar billede mazey Praktikant
02. marts 2006 - 10:45 Der er 7 kommentarer og
1 løsning

Hvordan får jeg fat i en tidligere række i en database

Hej Eksperter...

Jeg er ved at lave et lille script hvor det skal være muligt at bytte om på rækkefølgen i de rækker jeg har i en tabel...

For at starte med tabellen har en et id, et navn og en placering.

Jeg har så en side som sorterer de rækker efter placering.

Det der så skal være muligt er at kunne ændre i placeringsfeltet ved at klikke på et link.

Hvis der f.eks. er 3 rækker:

ID          NAVN              PLACERING

1          COLA                  1
3          PEPSI                2
4          JOLLY                3

Hvis jeg så vil flytte JOLLY op på PEPSI's plads ved hjælp af et link som indeholder JOLLY's placeringsnummer, hvordan får jeg så de 2 placeringsnumre byttet rundt i tabellen.

Det mere tricky i det er at man også kan slette poster, hvilket jo indebærer at man ikke kan garantere at numrene vil ligge lige efter hinanden.

Hvis i ikke forstår mit spørgsmål, så sig til, så skal jeg prøve at udpensle det noget mere....
Avatar billede puddelundercover Nybegynder
02. marts 2006 - 11:58 #1
hvis du f.eks. vil finde posten som ligger lige under (altså, posten med lavere nummer) kan du sige where PLACERING < 3 limit 1
så vil den finde 2, eller 1 hvis 2 ikke eksisterer
Avatar billede mazey Praktikant
02. marts 2006 - 12:02 #2
Takker... det prøver jeg lige at arbejde lidt med og vender så tilbage... :D
Avatar billede mazey Praktikant
02. marts 2006 - 12:10 #3
Når jeg laver nedenstående forespørgsel henter den jo så den første record i tabellen og ikke den lige før, som jeg gerne vil have fat i.

$forrige = mysql_query("SELECT * FROM rt_prod_$choose WHERE placering < $place LIMIT 1") or die(mysql_error());

Hvis der f.eks. er 3 rækker:

ID          NAVN              PLACERING

1          COLA                  1
3          PEPSI                2
4          JOLLY                3

Hvis jeg så klikker på Jolly viser den COLA istedet for PEPSI...
Avatar billede mazey Praktikant
02. marts 2006 - 12:12 #4
Min fejl...

$forrige = mysql_query("SELECT * FROM rt_prod_$choose WHERE placering < $place ORDER BY placering DESC LIMIT 1 ") or die(mysql_error());

Så virkede den...

Arbejder lige lidt videre med det
Avatar billede puddelundercover Nybegynder
02. marts 2006 - 12:17 #5
Sorry, fik ikke sat sortering på... ;)
Avatar billede mazey Praktikant
02. marts 2006 - 12:43 #6
Nå... nu fik jeg det til at virke som jeg gerne ville have det... jeg poster koden for en god ordens skyld, selvom den sikkert ikke er så pæn... :)

$forrige = mysql_query("SELECT * FROM rt_prod_$choose WHERE placering < $place ORDER BY placering DESC LIMIT 1 ") or die(mysql_error());
  $aktuel = mysql_query("SELECT * FROM rt_prod_$choose WHERE placering = $place ") or die(mysql_error());
  $aktuel2 = mysql_fetch_array($aktuel);
  $forrige2 = mysql_fetch_array($forrige);
  $forrigenummer2 = $forrige2[placering];
  $forrigenummer = $forrige2[id];
  $indset = $aktuel2[id];
  $indset2 = $aktuel2[placering];
  mysql_query("UPDATE rt_prod_$choose SET placering = '$indset2' WHERE id = $forrigenummer") or die(mysql_error());
  mysql_query("UPDATE rt_prod_$choose SET placering = '$forrigenummer2' WHERE id = $indset") or die(mysql_error());

Samme som ovenstående er brugt til at ændre rækkefølgen nedaf...

Smider du et svar så du kan få points...
Avatar billede mazey Praktikant
06. april 2006 - 17:08 #7
Jeg lader svaret stående åben til puddelundercover indtil mandag.... hvis ikke der er aflagt svar svarer jeg selv på dem (hvis puddelundercover vil have dem, og ikke har set dette, får han også det)
Avatar billede puddelundercover Nybegynder
07. april 2006 - 10:14 #8
Sorry, nu ska jeg være der :-p
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester