[Mysql] nächster/voheriger eintrag

Rene

wusaa
ID: 44966
L
30 April 2006
412
13
hi,
ich habe ein kleines problem und suche nach einer lösung ohne der anwendung einer schleife...

meine datenbank ist so aufgebaut:

id || kategorie
1 || test
2 || test
3 || test_2
4 || test_3
5 || test
6 || test_4
7 || test


sagen wir mal, man schaut isch gerade die id 5 aus der Kategorie test an, jetzt möchte ich dort links postieren mit vor(id: 7 || kat: test) und zurück (id: 2 || kat: test)

könnte jetzt ne schleife machen...allerdings gibt es auch kategorien, gehen wir jetzt mal von test_3 aus, die nur einen eintrag haben...sehr ünschön ^^

habs mit limit $id2,1 probiert - will nicht funktionieren, zudem hätt ich keine lösung den datensatz voher damit zu deklarieren...

hat da jemand eine simplere lösung?

Vielen Dank & MfG René
 
Datensatz mit nächstgrößerer ID:
Code:
[FONT=Courier New][B][COLOR=#9932cc]SELECT[/COLOR][/B] .... [B][COLOR=#9932cc]WHERE[/COLOR][/B] id>aktuelleID [B][COLOR=#9932cc]ORDER[/COLOR][/B] [B][COLOR=#9932cc]BY[/COLOR][/B] id [B][COLOR=#9932cc]ASC[/COLOR][/B] [B][COLOR=#9932cc]LIMIT[/COLOR][/B] 1[/FONT]
Datensatz mit nächstkleinerer ID:
Code:
[FONT=Courier New][B][COLOR=#9932cc]SELECT[/COLOR][/B] .... [B][COLOR=#9932cc]WHERE[/COLOR][/B] id<aktuelleID [B][COLOR=#9932cc]ORDER[/COLOR][/B] [B][COLOR=#9932cc]BY[/COLOR][/B] id [B][COLOR=#9932cc]DESC[/COLOR][/B] [B][COLOR=#9932cc]LIMIT[/COLOR][/B] 1[/FONT]
Zusätzlich in jede WHERE-Klausel noch die Bedingung, welche Kategorie du haben willst, also ein AND kategorie='test'.

Hierbei gleich der Hinweis, dass dein Datenbank-Layout nicht der 2. Normalform genügt ! Siehe hier.