Avatar billede enetonline_dk Nybegynder
06. august 2005 - 08:12 Der er 10 kommentarer

Hente nyeste data ud fra MySQL

Hej.. mit spørgsmål er som følger:

jeg har et lille problem med mysql. det lader til, at når jeg bruger denne kommando:


$resultat = mysql_query("select * from Telefon");
while ($raekke = mysql_fetch_array($resultat)) {
  echo "Navn: ".$raekke['navn'].
        " Telefon: ".$raekke['telefon']."<br />";
}

får jeg de ældste data først, istedet for omvendt- hvilket ikke er så smart når det er et nyhedsscript jeg har programmeret. Og da jeg ikke er en snegl til MYSQL går jeg nærmest tabt her :)

Håber på noget hjælp!

På forhånd tak,

skipperbent...
Avatar billede arne_v Ekspert
06. august 2005 - 08:15 #1
$resultat = mysql_query("select * from Telefon order by noget desc");

hvor noget er et felt (id, tid eller andet) som altid stiger
Avatar billede nielle Nybegynder
06. august 2005 - 08:15 #2
Du kan sortere på rækkefoølgen med noget i stil med:

select * from Telefon ORDER BY etAfDineFelter DESC

DESC står for Descending - faldende.

Hvis der skal sorteres i stigende rækkefølge er det:

select * from Telefon ORDER BY etAfDineFelter ASC
Avatar billede nielle Nybegynder
06. august 2005 - 08:19 #3
Det felt, du vælger at sortere på, bør på en eller anden måde være relevant for det tidspunkt som posterne er lagt i tabellen på. Det kunne f.eks. være feltet med din primær-nøgle, eller måske har du direkte et felt som angiver postnings-tidspunktet?
Avatar billede enetonline_dk Nybegynder
06. august 2005 - 08:47 #4
Jamen jeg takker mange gange for jeres super support :)

takk tak tak tak !
Avatar billede myplacedk Nybegynder
06. august 2005 - 09:05 #5
Bare så du ved det: Når man ikke angiver en sortering, er rækkefølgen "udefineret". Dvs. det kommer måske i samme rækkefølge som det er lagt ind i databasen, men der er ingen garanti. Det kan for den sags skyld ændre sig helt umotiveret, efter systemet har fungeret i månedsvis.
Avatar billede nielle Nybegynder
06. august 2005 - 09:22 #6
Der er intet som helst umotiveret ved den måde en database henter sine data ud på - med mindre andet er angivet, så forsøger databasen at optimere for hastighed. Det er så en anden snak at det måske ikke altid er indlysende for ikke-specialister at gennemskue systemet.
Avatar billede arne_v Ekspert
06. august 2005 - 09:31 #7
jeg tror at "undefined" måske snarere er "implementation specific"

relationel database teori og SQL standarden siger at man ikke kan have nogen
forventning til rækkefølgen når man ikke angiver ORDER BY

jeg vil tro at alle databaser er deterministiske d.v.s. at den samme
rækkefølge af INSERT/DELETE vil give samme rækkefølge i en SELECT uden
ORDER BY

men:
1) det er forskelligt fra database til database og det kan være forskelligt
  fra version til version (og for MySQL's vedkommende også forskelligt for
  forskellige tabel typer)
2) rækkefølgen giver formentlig ingen mening set udfra en logisk betragtning
Avatar billede myplacedk Nybegynder
06. august 2005 - 10:16 #8
nielle: Well, der er vel intet som er umotiveret, alt har jo en årsag. Men hvis ikke man kan sin database-teori (som han jo ikke kan), så er det lidt nytteløst at gøre mere ud af det. Men ja, hastighedsoptimering er der én af faktorerne.
Avatar billede nielle Nybegynder
10. august 2005 - 21:00 #9
enetonline_dk> Du mangler vist at bede en af os om at lægge et svar :^)
Avatar billede nielle Nybegynder
26. august 2005 - 09:47 #10
Lukketid?
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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