|
| PHP og vanskeligt udtræk fra MySQL databas~ Fra : Kenneth |
Dato : 12-11-08 23:23 |
|
Hej,
Jeg sidder og er ved at lave en blog i PHP. I den forbindelse er
topics gemt i en MySQL database med en primærnøgle "id", som
inkrementerer.
Nu er det sådan, at jeg gerne vil udtrække relevante (på hinanden
følgende) topics fra databasen. Dette kunne gøres ved hjælp af
"id", men denne kan der være "huller" i, da topics kan være
slette. Således kan de fem første topics have "id" 1,3,4,8,9.
Hvordan får jeg fat i topic 8-16 (fx), hvis "id" ikke er
kontinuert? Skal problemet løses i mysql-query'en, eller skal jeg
hente alt over i et arrai i PHP og sortere det på en eller anden
måde?
Evt. nogen der har efaring med sql-funktionen ROW_NUMBER()?
Mvh Kenneth
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Birger Sørensen (13-11-2008)
| Kommentar Fra : Birger Sørensen |
Dato : 13-11-08 07:07 |
|
Kenneth kom med denne ide:
> Hej,
>
> Jeg sidder og er ved at lave en blog i PHP. I den forbindelse er
> topics gemt i en MySQL database med en primærnøgle "id", som
> inkrementerer.
>
> Nu er det sådan, at jeg gerne vil udtrække relevante (på hinanden
> følgende) topics fra databasen. Dette kunne gøres ved hjælp af
> "id", men denne kan der være "huller" i, da topics kan være
> slette. Således kan de fem første topics have "id" 1,3,4,8,9.
>
> Hvordan får jeg fat i topic 8-16 (fx), hvis "id" ikke er
> kontinuert? Skal problemet løses i mysql-query'en, eller skal jeg
> hente alt over i et arrai i PHP og sortere det på en eller anden
> måde?
>
>
> Evt. nogen der har efaring med sql-funktionen ROW_NUMBER()?
>
> Mvh Kenneth
Mener du kan bruge LIMIT x,y - henter y meddelelser med x som første.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Philip Nunnegaard (13-11-2008)
| Kommentar Fra : Philip Nunnegaard |
Dato : 13-11-08 09:42 |
|
"Birger Sørensen" <sdc@bbsorensen.com> skrev
> Mener du kan bruge LIMIT x,y - henter y meddelelser med x som første.
Jeg ville uden tvivl bruge limit til formålet og bruger det selv flittigt
til sideopdeling af en visning.
// Henter seneste 10 tråde
select id,kolonne1,kolonne2,kolonne3 from debattraade order by id desc limit
0,10
// Næste 10 tråde (side 2) - altså tråd nr. 11 til 20
select id,kolonne1,kolonne2,kolonne3 from debattraade order by id desc limit
10,10
Netop limit-tingen savnede jeg i MS-databaser, hvor man skulle rode sig ud i
en meget mere kompliceret SQL-sætning for at få samme resultat, med mindre
man *kun* var interesseret i de seneste X poster, hvor det kunne klares med
"select top X..."
| |
Phecdaret (13-11-2008)
| Kommentar Fra : Phecdaret |
Dato : 13-11-08 14:15 |
|
Hej Birger og Philip,
Tak for jeres hurtige svar - jeg vil straks prøve at implementere
jeres forslag. Tænkt at det var så simpelt. Men det kan jo være
svært at finde løsningen, når man ikke ved, hvad man leder efter :)
Mvh Kenneth
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Philip Nunnegaard (13-11-2008)
| Kommentar Fra : Philip Nunnegaard |
Dato : 13-11-08 17:33 |
|
"Phecdaret" <phecdaret@gmail.com> skrev
> Men det kan jo være
> svært at finde løsningen, når man ikke ved, hvad man leder efter :)
Præcis!
Google er kun éns ven når man ved hvad man skal skrive i søgefeltet.
| |
|
|