login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Sorteren op datum (Opgelost)

Offline markdekker - 15/10/2008 16:44 (laatste wijziging 15/10/2008 16:45)
Avatar van markdekkerNieuw lid Ik zit met een probleem van het sorteren van games op een release datum.

Doormiddel van deze manier sorteer ik:

  1. $select = "SELECT id, lidid, cat, titel, DATE_FORMAT(uitgave,'%d-%m-%Y') AS uitgave1 FROM games ORDER BY uitgave ASC


Dan komt het er op deze manier uit te zien:

Onbekend
10-10-2008
16-10-2008
17-10-2008

De datums die bekend zijn worden goed weergegeven alleen onbekende datums zet die boven aan neer. Is het mogelijk om die niet te tonen.

Wat is onbekend?

Onbekend is eigenlijk 00-00-0000, maar door dit onderstaande scriptje word die onbekend genoemt.

  1. if($list->uitgave1 == "00-00-0000")
  2. echo "Onbekend";
  3. else
  4. echo $list->uitgave1;


Dus is het mogelijk om 00-00-0000 (Onbekend) niet te tonen?

mvg,
Mark

5 antwoorden

Gesponsorde links
Offline marten - 15/10/2008 16:47
Avatar van marten Beheerder Gebruik de if else structuur van MySQL. Deze staat onderaan in één van de tutorials die ik geschreven heb over datum en tijd functies in MySQL.
Offline Kr4nKz1n - 15/10/2008 16:47
Avatar van Kr4nKz1n Onbekend Pak het probleem eerder aan.

  1. SELECT id, lidid, cat, titel, DATE_FORMAT(uitgave,'%d-%m-%Y') AS uitgave1 FROM games WHERE uitgave!='00-00-0000' ORDER BY uitgave ASC


Ik weet niet of dit de correcte manier is, maar daar weet marten alles van.
Offline marten - 15/10/2008 16:48 (laatste wijziging 15/10/2008 16:53)
Avatar van marten Beheerder Nou denk niet dat dat de oplossing is omdat je wel de games wilt weergeven waarvan de datum niet bekend is 

  1. SELECT id, CASE WHEN betaald=0 THEN 'Nee' WHEN betaald=1 THEN 'Ja' END AS betaling FROM betalingen ORDER BY betaald


Voorbeeldje hoe je het kan gebruiken.
Offline markdekker - 15/10/2008 16:57
Avatar van markdekker Nieuw lid Dat van Kr4nKz1n werkt ook.

Games die nu een onbekende datum hebben worden niet getoond. Daarvoor wil ik iets nog voor verzinnen;)

Bedankt voor jullie tijd en snelle hulp.
Offline Diko - 16/10/2008 02:02
Avatar van Diko PHP interesse Stukje over ORDER BY in MySQL:
"NULLs are considered lower than any non-NULL value, except if a - (minus) character is added before the column name and ASC is changed to DESC, or DESC to ASC; this minus-before-column-name feature seems undocumented"

Een onbekende datum zou ik dus in de database vervangen door NULL, dan kun je met ORDER BY dus je NULLs onderaan laten verschijnen. Al vind ik de CASE oplossing van marten ook wel schattig 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.191s