Avatar billede Slettet bruger
07. oktober 2003 - 10:52 Der er 12 kommentarer og
1 løsning

10 seneste poster

Hejsa...

Hvis jeg nu vil hente de 10 nyeste poster ud af en DB. Hvordan gør jeg så... jeg vil ikke sortere efter et flet, ex id eller title, men bare hente de 10 seneste poster.

Jeg kan få den til at hente de 10 første med

$result = mysql_query("SELECT * FROM $mySQL_tabl LIMIT 10");

men den vil ikke æde

$result = mysql_query("SELECT * FROM $mySQL_tabl DESC LIMIT 10");

Hvordan gør man det så?
Avatar billede clausjul Nybegynder
07. oktober 2003 - 10:54 #1
Du er nødt til at lave et felt, som angiver tidspunktet for hvornår posten er lagt ind. Det kan være f.eks. en TIMESTAMP-felt eller en DATE felt.
Avatar billede peturkirke Novice
07. oktober 2003 - 10:55 #2
lav enten et felt med autonummerering eller et timestamp felt, som du sorterer på
Avatar billede clausjul Nybegynder
07. oktober 2003 - 10:55 #3
Hvis du opretter et felt som hedder Updated og det er timestamp - så kan du trække det ud ved SQL:

SELECT * FROM $mySQL_tabl ORDER BY Updated DESC LIMIT 10
Avatar billede clausjul Nybegynder
07. oktober 2003 - 10:56 #4
Timestamp-feltet ændrer sig altid automatisk, hver gang posten bliver ændret på en eller anden måde.
Avatar billede Slettet bruger
07. oktober 2003 - 10:57 #5
Ja ok... hmm.. men... jeg har jo lige som 500 poster som ER sat ind, de har jo ikke noget timestamp, men alligevel sorteres de efter et eller andet, det må man da vel kunne få fat i?
Avatar billede doodoo Novice
07. oktober 2003 - 10:59 #6
$result = mysql_query("SELECT * FROM $mySQL_tabl LIMIT 10 DESC ");
Avatar billede peturkirke Novice
07. oktober 2003 - 10:59 #7
det er kun det første timestamp felt, som opdateres. Hvis man laver flere så opdateres de andre ikke
Avatar billede peturkirke Novice
07. oktober 2003 - 11:00 #8
men kan man ikki bare bruge et ID felt, som bruger autonummerering ? Det plejer jeg at gøre, og det fungerer fint
Avatar billede Slettet bruger
07. oktober 2003 - 11:06 #9
Jo jo.. det kunne jeg nu godt.. men .. det er jo bare lige at der ER 500 poster, som er sat ind jo.. :)

kunne man finde antallet af indsatte poster og bede den om at hente fra x og 10 frem?

altså

totalt antal poster - 10 = x

og så hente poster fra x og 10 frem
Avatar billede peturkirke Novice
07. oktober 2003 - 11:16 #10
det her har du prøvet:
SELECT * FROM $mySQL_tabl DESC LIMIT 10

men du må skrive noget ORDER BY for DESC og så må du finde et felt, som du kan sortere på, f.eks.:
SELECT * FROM $mySQL_tabl ORDER BY etellerandetfelt DESC LIMIT 10
Avatar billede Slettet bruger
07. oktober 2003 - 11:18 #11
Ja i know...

men.. det var jo det jeg ville undgå... De ligger jo sorteret efter et eller andet i mysql'en... så når man kan hente de 10 første, må man vel også kunne hente de 10 sidste?
Avatar billede peturkirke Novice
07. oktober 2003 - 11:25 #12
kan det her bruges:

$result = mysql_query("SELECT * FROM tabel",$db);
$AntalRaekker = mysql_num_rows($result);
$Position = $AntalRaekker - 10;

$sql = "SELECT * FROM tabel LIMIT $Position, 10";
$result2 = mysql_query($sql);
Avatar billede Slettet bruger
07. oktober 2003 - 11:34 #13
peturkirke> Jeps.. præcis det! :)

Takker.. :)

Tak til andre for forslag...
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