Avatar billede farmer Nybegynder
22. september 2005 - 15:10 Der er 5 kommentarer og
1 løsning

Vælg næste id (uden mellemrum) el. start forfra

Jeg har nogle unikke id'er i en database, som tilgås af et php-script.

Jeg kender altid et af id'erne, og skal så have det næste i rækken returneret. Hvis der ikke er et næste id, så skal jeg have det første id returneret.

eks. 2, 5, 7, 9, 15

Hvis jeg får oplyst 7, skal jeg have 9 fra databasen.
Kender jeg 9 skal jeg have 15.
Kender jeg 15, så skal jeg have laveste tal, altså 2 returneret.

Hvordan gøres dette smartest?
Avatar billede showsource Seniormester
22. september 2005 - 15:21 #1
Hvordan tilgås?
Lægges de i et array? For så kan du bruge array_search() til at finde forrige/næste
Avatar billede arne_v Ekspert
22. september 2005 - 15:28 #2
SELECT MIN(id) FROM tabel WHERE id > x
Avatar billede farmer Nybegynder
22. september 2005 - 15:37 #3
Showsource >> tilgå er bare at lade php hente id'er vha. sql. Som det er nu bruger jeg en MySQL "SELECT id FROM table WHERE status=1 ORDER BY RAND() LIMIT 0,1", som bare ikke virker særlig random. Ud af 40-50 entries kommer de samme 4 frem ca. 50% af gangene... Derfor vil jeg udvælge på en ny måde, så jeg er sikker på, at alle id'er vælges ca. lige meget.

Arne >> Super! "SELECT MIN(id) FROM tabel WHERE id > x"
og hvis den ikke returnerer et resultat, så samme SELECT uden WHERE for at starte forfra.
Avatar billede arne_v Ekspert
22. september 2005 - 15:38 #4
så ligger jeg et svar
Avatar billede showsource Seniormester
22. september 2005 - 15:44 #5
random?
Ja, det er jo noget andet :O)
Avatar billede farmer Nybegynder
22. september 2005 - 16:06 #6
takker
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
Computerworld tilbyder specialiserede kurser i database-management

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