28. marts 2005 - 03:08Der er
29 kommentarer og 1 løsning
query som henter row før og efter, det row som er valgt
Hejsa Har en brugertabel. Har så en side, hvor man kan se brugernavne, og klikke på et navn for at se info. Når man har valgt et navn, vil jeg gerne kunne linke til forrige brugernavn og næste brugernavn. Mit problem opstår fordi det er muligt at vælge i hvilken rækkefølge brugernavne skal vises, navn, admin, og oprettelsetid
Og her kan jeg sgutte finde ud af at lave en eller to query som henter forrige og næste brugernavn, eller en enkelt, for den sags skyld!
Findes der en "mysql_function" som kan gøre det?
Eks. 1 => admin 2 => test 5 => æsel 7 => meretest
Vælger man f.eks. at sortere efter navn, og ser profil for meretest, skal jeg finde admin (forrige) og test (næste)
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
En query som "garanterer" at viste brugernavn også er med, ville være fint! Så ville jeg lave et array, id => navn, og på den måde fidne ud af forrige og næste
Okay. Min tanke var umiddelbart at lave den normale select og så køre alle rækker igennem indtil du rammer den række du skal bruge. Hvis du benyttede en ny MySQL version (såsom 5.0.3) kunne du oprette en Stored Procedure [1], så data ikke skulle overføres til PHP. I PHP bør du kunne lave noget lignende:
<? $rows = array(); while($row = <hent_fra_database>) { if (<row matcher den vi gerne vil vise>) { $rows[] = $buf; $rows[] = $row; $rows[] = <hent_fra_database> break; } $buf = $row; } ?>
så burde du have de tre rækker du gerne vil have i $rows
hmhm, ja, sad lige og overvejede at lægge alle id, navn i en txtfil, (x-antal alt efter mulige sorteringer) og ved visning hente linienr for viste, og på den måde hente forrige og næste.
Den du lige tænker på der, skal jeg lige tænke lidt over :O)
Jeg tror det vil påvirke den generelle performence. Jeg er sikker på at mit forslag vil være hurtigere end, hvis du skal søge i .txt filer! Derudover har du det ekstra besvær med at lægge data ud i filen. Så hellere oprette en ny tabel, hvor data er lagt som du ville have gjort i .txt filen.
Synes selv at PHP er suverænt hurtig til at håndtere "lokale" filer. Og ændre data i fil, skal jo kun gøres når der ændres i brugertabel. (oprettes/slettes)
Og kan ikke lige se hvordan du ville gøre det, med dit forslag?
(SELECT navn FROM tabel,admin,oprettelsetid WHERE navn < 'X' ORDER BY navn DESC LIMIT 1) UNION (SELECT navn,admin,oprettelsetid FROM tabel WHERE navn = 'X') UNION (SELECT navn,admin,oprettelsetid FROM tabel WHERE navn > 'X' ORDER BY navn ASC LIMIT 1)
Nej, det virker ikke for mig, at bruge navnet som "middel" Så længe der ikke er valgt nogen form for sortering, har jeg ingen problemer. default sort er navn
...............
Flg. virker fordi jeg putter alle id'er i et array! og på den måde finder hvilken jeg skal linke til:
Jeg er faktsik gået lidt i stå, men den med navnet har fået mig på "ret kurs", så du får lige arne....
Synes godt om
Ny brugerNybegynder
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.