[PHP] Sorteren op datum

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
even een vraagje, waarschijnlijk heel basic maar ik kan er niets over vinden in m'n phpboek..

wat ik nu heb is dat de content gesorteerd word op programmaid
PHP:
1
2
3
4
5
6
7
<?php
include('engine.php');
dbconnect(); $sql = "SELECT programmaid,titel,tekst,datum
                    FROM programma
                    ORDER BY programmaid ASC";
$geg = dbquery($sql); while($dat = mysql_fetch_array($geg)) {
?> blaap <?php }; ?>


dit werkt prima maar wat ik graag wil is dat de content gesorteerd gaat worden op datum


PHP:
1
2
3
4
5
6
7
<?php
include('engine.php');
dbconnect(); $sql = "SELECT programmaid,titel,tekst,datum
                    FROM programma
                    ORDER BY datum ASC";
$geg = dbquery($sql); while($dat = mysql_fetch_array($geg)) {
?> blaap <?php }; ?>

datum is zo opgemaakt: 14-10-05

anyone? :)

Acties:
  • 0 Henk 'm!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 03-07 14:47

disjfa

be

Maak er een date veld van in de database en dan kan het gemakkelijk. Nu zal het niet gaan.

disjfa - disj·fa (meneer)
disjfa.nl


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
damn, idd..ik had dat veld als text, even proberen


btw ik bestudeer dit ook nog wel even: [rml][ PHP] Sorteren op Datum DD-MM-'JJ[/rml]

Acties:
  • 0 Henk 'm!

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 07-09 09:59
Verwijderd schreef op vrijdag 14 oktober 2005 @ 14:37:

PHP:
1
2
3
4
5
6
7
<?php
include('engine.php');
dbconnect(); $sql = "SELECT programmaid,titel,tekst,datum
                    FROM programma
                    ORDER BY datum ASC";
$geg = dbquery($sql); while($dat = mysql_fetch_array($geg)) {
?> blaap <?php }; ?>

datum is zo opgemaakt: 14-10-05

anyone? :)
werkt dit niet ?

PHP:
1
2
3
$sql = "SELECT programmaid,titel,tekst,DATE(datum) as dateField
                    FROM programma
                    ORDER BY dateField ASC";

[ Voor 49% gewijzigd door Cuball op 14-10-2005 14:43 ]

"Live as if you were to die tomorrow. Learn as if you were to live forever"


Acties:
  • 0 Henk 'm!

  • Cubix
  • Registratie: Juni 2001
  • Niet online
Je kunt ook die datum anders opslaan in de database:
20051014
Dat sorteert handig.

En als je deze dan wel weer correct wilt weergeven trek je de string in stukken en geef je het weer zoals logisch is.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Cuball schreef op vrijdag 14 oktober 2005 @ 14:42:
werkt dit niet ?

PHP:
1
2
3
$sql = "SELECT programmaid,titel,tekst,DATE(datum) as dateField
                    FROM programma
                    ORDER BY dateField ASC";
Zelfs als het zou werken: waar zou je dit willen? Dan kun je net zo goed meteen een date-veld gebruiken...

Dit is trouwens al veel vaker voorbij gekomen, en altijd komt er weer uit dat de beste oplossing is om een datumveld te gebruiken in je database, of eventueel een integerveld waar je een timestamp in zet. ;)
Cubix schreef op vrijdag 14 oktober 2005 @ 14:46:
Je kunt ook die datum anders opslaan in de database:
20051014
Dat sorteert handig.

En als je deze dan wel weer correct wilt weergeven trek je de string in stukken en geef je het weer zoals logisch is.
Euh...why? :? Nogmaals, neem dan meteen een date-veld of desnoods een fatsoenlijke timestamp, liever dan je eigen formaat...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 07-09 09:59
-NMe- schreef op vrijdag 14 oktober 2005 @ 14:49:
[...]
Zelfs als het zou werken: waar zou je dit willen? Dan kun je net zo goed meteen een date-veld gebruiken...
jah weet ik ook wel, maar ik ging ervan uit dat de databank structuur vast lag... maarja dat ging dan wel erg dom ontwerp geweest zijn :-)

"Live as if you were to die tomorrow. Learn as if you were to live forever"


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
opgelost

ik heb text in date gewijzigd, de datums aangepast voor 0000-00-00 en het werkt


nog even een vraagje, is het mogelijk om een IF statement te gebruiken met een date?

dus bijvoorbeeld: " If $date is 1 dag voorbij vandaag echo 'voorbij'; "

[ Voor 7% gewijzigd door Verwijderd op 14-10-2005 15:07 ]


Acties:
  • 0 Henk 'm!

  • B-Man
  • Registratie: Februari 2000
  • Niet online
Verwijderd schreef op vrijdag 14 oktober 2005 @ 15:07:
opgelost

ik heb text in date gewijzigd, de datums aangepast voor 0000-00-00 en het werkt


nog even een vraagje, is het mogelijk om een IF statement te gebruiken met een date?

dus bijvoorbeeld: " If $date is 1 dag voorbij vandaag echo 'voorbij'; "
in principe kun je het beste hiervoor de date & time functions van mysql gebruiken (http://dev.mysql.com/doc/...e-and-time-functions.html, zie DATE_ADD), of gewoon
code:
1
CURDATE()-datumkolom = 1

Aangezien een DATE kolom als YYYYMMDD opgeslagen wordt, kun je (als ranzige hack) data gewoon optellen, aftrekken, delen, enz. 20051014 - 20051013 levert dan 1 op, 1 dag verschil

Acties:
  • 0 Henk 'm!

  • Sosabowski
  • Registratie: Juni 2003
  • Laatst online: 18-09 21:03

Sosabowski

nerd

Verwijderd schreef op vrijdag 14 oktober 2005 @ 15:07:
opgelost

ik heb text in date gewijzigd, de datums aangepast voor 0000-00-00 en het werkt


nog even een vraagje, is het mogelijk om een IF statement te gebruiken met een date?

dus bijvoorbeeld: " If $date is 1 dag voorbij vandaag echo 'voorbij'; "
MySQL date and time functions

with ^^ :)

[ Voor 5% gewijzigd door Sosabowski op 14-10-2005 15:18 ]

The whole problem with the world is that fools and fanatics are always so certain of themselves, and wiser people so full of doubts. -- Bertrand Russell


Acties:
  • 0 Henk 'm!

Verwijderd

Kun je dit niet beter op applicatie/scriptniveau doen? SQL is toch eigenlijk bedoelt om informatie op te halen (alhoewel ik daar steeds meer aan begin te twijfelen).

Acties:
  • 0 Henk 'm!

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
Natuurlijk op databaseniveau. Waarom zou het anders kunnen? Maw: Het is er voor gemaakt.

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?

Pagina: 1