Avatar billede jensrud Nybegynder
24. april 2008 - 12:57 Der er 4 kommentarer og
1 løsning

Pagination - eller hente bestemte rækker fra en mysql query?

Jeg skal fyre en SQL statement af mod min database, hvor jeg gerne vil hente nogle bestemte rækker fx. række 25-50 fra en query til brug for at paginere de data jeg senere vil præsentere på min webside. Hvordan gør jeg?

Min sql query ser sådan ud:

SELECT Products.ProductID, Products.CategoryID, Products.Title, Categories.Title AS CategoryTitle
FROM Products INNER JOIN
Categories ON Products.CategoryID = Categories.CategoryID;

Hvordan får jeg valgt bestemte rækker fra min query? Altså et eller andet i stil med "select * from table where rows between 25 and 50".

/Jens
Avatar billede fsconsult.dk Nybegynder
24. april 2008 - 13:03 #1
brug LIMIT ...

f.eks. LIMIT 50 OFFSET 100

hvilket (burde) give række 101 til 150

http://dev.mysql.com/doc/refman/5.0/en/select.html
Avatar billede jensrud Nybegynder
24. april 2008 - 13:29 #2
Jeg prøver engang. Hvis det er så simpelt er det jo dejligt. Jeg frygtede for at skulle benytte en masse nørdede mysql funktioner som sql_found_rows(), mysql_num_rows() og mysql_data_seek().
Avatar billede jokkejensen Novice
24. april 2008 - 16:03 #3
Offtopic: Tror jeg nok man siger at man lige skal huske en order by, når man bruger limit.. især til pagination, så man man er sikker på de kommer i samme rækkefølge anden gang.

Vh Jacob
Avatar billede jensrud Nybegynder
24. april 2008 - 17:16 #4
Virker fint. Takker.
Avatar billede fsconsult.dk Nybegynder
24. april 2008 - 19:05 #5
jacob> præcis ... man skal huske ORDER BY, så man altid får præcis samme rækkefølge, ellers får man nogle underlige resultater ;)
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