Avatar billede sportie Nybegynder
22. september 2007 - 18:52 Der er 19 kommentarer

sql "order"?

Hej Eksperter,

Jeg har følgende indsat i mit .php :

$idag = date("Y/m/d");
$tur = mysql_query("SELECT *, DATE_FORMAT(fra_dato, '%d-%m-%Y') AS nfra_dato, DATE_FORMAT(til_dato, '%d-%m-%Y') AS ntil_dato, DATE_FORMAT(frist, '%d-%m-%Y') AS nfrist FROM turnering WHERE frist >= '$idag' ORDER BY frist ASC") or die(mysql_error());

Ovenstående er dog kun en lille del af det.

Det jeg så svil spørge om er om det er muligt at få de resultater hvor fristen er udløbet til at fremkomme øverst på siden i stedet for nederst?

På forhånd tak.

// Sportie
Avatar billede 2c Nybegynder
22. september 2007 - 19:17 #1
ORDER BY frist DESC

måske... ?
Avatar billede sportie Nybegynder
22. september 2007 - 21:47 #2
Det virker altså ikke?!
Avatar billede leif Seniormester
22. september 2007 - 23:16 #3
Prøv med:
ORDER BY nfrist DESC



Hvad er dit format i "frist" DATE, VARCHAR, DATETIME eller noget andet ?
Avatar billede leif Seniormester
22. september 2007 - 23:17 #4
sportie -> Når du siger virker ikke, mener du så at de stadig står nederst ? Den skulle gerne havde ændret på rækkefølgen når du ændrer fra ASC til DESC
Avatar billede sportie Nybegynder
22. september 2007 - 23:27 #5
De står stadig nederst, men problemet er at fristen ændres fra en dato til "tilmelding slut"? - og jeg vil gerne have tilmelding slut'erne til at står øverst?!
Avatar billede leif Seniormester
22. september 2007 - 23:33 #6
Jeg kan ikke se hvad felt det er du vil sortere efter, men:

ORDER BY feltnavn ASC = Sortering fra A -> Z
ORDER BY feltnavn DESC = Sortering fra Z -> A
Avatar billede leif Seniormester
22. september 2007 - 23:41 #7
Jeg har gerne alle mine datoer i databasen i følgende format fx 2007-09-22 for dags dato.

Derved laver jeg blot, hvis jeg vil have de ældste øverst:
ORDER BY feltnavn DESC
Avatar billede sportie Nybegynder
22. september 2007 - 23:42 #8
jamen det samme har jeg - men problemet er at når datofristen er udløbet ændres datoen til "tilmelding slut" og kan derved ikke læses på følgende måde ? så hvad kan man da gøre ?
Avatar billede uniquedk Nybegynder
23. september 2007 - 05:43 #9
Nu er jeg nok ikke lige den stærkeste i sql og php, men kunne man ikke istedet for "tilmelding slut" ændre det til en eller anden 0 date ala 0000-00-00 og så i sin php kode via en if sætning ændre det udskrevne til "tilmelding slut" så ville sorteringen i databsen vel bare være ACS eller DESC...
bare lige en hurtig ide uden at have kigget nærmere i tråden :-)
Avatar billede uniquedk Nybegynder
23. september 2007 - 05:44 #10
stavefejl.... ASC og ikke acs ;-)
Avatar billede leif Seniormester
23. september 2007 - 10:35 #11
Dvs. du laver en update i Databasen så der står Tilmelding Slut i stedet for ?

Hvis Ja, så lad være med det og bare ændre det på skærmen, men at der stadig i databasen står de rigtige datoer.
Avatar billede uniquedk Nybegynder
23. september 2007 - 13:55 #12
jo leif, men hvis han vil ha at alle "tilmelding slut" skal stå øverst og ikke blandet med de andre, er det vel nødvendigt at han sætter dem alle til en ens nulstillet dato der er enten før eller efter alle de andre...  eller hvad?
Avatar billede leif Seniormester
23. september 2007 - 14:44 #13
uniquedk -> Hvis der er 4 med teksten "tilmelding slut" hvordan kan den så vide hvilken af dem der skal være øverst !
Avatar billede uniquedk Nybegynder
23. september 2007 - 15:02 #14
jo det kan jeg da godt se er rigtig... men hvis han beholder de oprindlige dates, så blir de vel blandet med alle dem der ikke er slut hvis han bare sorterer ASC eller DESC..
hvis jeg lige ser det rigtigt, men jeg er også ved at være lidt træt *GGG*, men ellers skal han vel ud i at lave et extra felt med en status ala -1 for slut og hente DEM sorteret efter dato seperat fra dem der ikke er slut, men hæng mig ikke op på noget... min ide var bare lige en hurtig indskydelse ;-)
Avatar billede leif Seniormester
24. september 2007 - 21:30 #15
Hvorfor vil de blive blandet ? Hvis han sorterer på fristen vil de jo stå i dato rækkefølge
Avatar billede uniquedk Nybegynder
25. september 2007 - 00:30 #16
Hvis der nu er forskellig frist på dem, men jeg har overhovedet ikke kigget videre i det så du har nok ret ;-)
Avatar billede sportie Nybegynder
27. september 2007 - 12:15 #17
Synes altså ikke jeg kan finde en løsning udfra hvad i er kommet med men tak for jeres forsøg, jeg vil gerne give jer 15 point hver - smid et svar!
Avatar billede leif Seniormester
21. oktober 2007 - 23:12 #18
Lukketid ?
Avatar billede erikjacobsen Ekspert
21. oktober 2007 - 23:16 #19
Et forsinket forslag til løsning:

1) Brug nu et DATE (eller DATETIME) felt til en dato. Ikke char/varcher
2a) Lav et ekstra felt der indikerer om tilmelding er slut. Så skal du ikke ændre datoen i det andet felt
2b) Eller lad dit script bagved sammeligne med dd, og finde ud af om tilmelding er slut eller ej.
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