Ik denk dat je best de tabel eenmalig optimaliseert door de datum in een veld van het type "date" om te zetten. Ik heb even wat code voor je uitgeschreven; dit werkt bij mij:
Code:
<?php
// veronderstelling: in de tabel $tabel zit een veld "datum" van het type
// varchar en is opgebouwd als "DD-JJ-MMMM"
// de tabel heeft een sleutelveld "id" om records uniek te kunnen identitificeren
// doel: omzetten naar een veld "datum" van het type date en opgebouwd
// als "JJJJ-MM-DD"
// naam van de tabel opgeven
$tabel = "nieuws";
// nieuw veld "datum2" toevoegen aan tabel
$sql = "ALTER TABLE $tabel ADD `datum2` DATE NOT NULL AFTER `datum`";
$query = mysql_query($sql)or die(mysql_error());
// gegevens van veld "datum" naar veld "datum2" kopiëren
$select = "SELECT * FROM $tabel";
$query = mysql_query($select)or die(mysql_error());
while($list = mysql_fetch_object($query)){
$datumrij = preg_split('//', $list->datum, -1, PREG_SPLIT_NO_EMPTY);
$datumnieuw = $datumrij[6] . $datumrij[7] . $datumrij[8] . $datumrij[9] . "-" . $datumrij[3] . $datumrij[4] . "-" . $datumrij[0] . $datumrij[1];
$update = "UPDATE $tabel SET datum2='$datumnieuw' WHERE id='$list->id'";
$querietje = mysql_query($update)or die(mysql_error());
echo ("\n<br />record $list->id aangepast");
}
// oud veld "datum" mag nu verwijderd worden
$sql = "ALTER TABLE $tabel DROP `datum`";
$query = mysql_query($sql)or die(mysql_error());
// nieuw veld "datum2" nog hernoemen naar "datum"
$sql = "ALTER TABLE $tabel CHANGE `datum2` `datum` DATE NOT NULL";
$query = mysql_query($sql)or die(mysql_error());
// klaar!
echo ("\n<br />\n<br />einde verwerking");
?>
Nadien kan je
Code:
$datumrij = preg_split('//', $list->datum, -1, PREG_SPLIT_NO_EMPTY);
ook gebruiken om je datum opnieuw uit te spitten in bijvoorbeeld DD-MM-JJJJ. Vanaf nu kan je
Code:
$select = "SELECT * FROM $tabel ORDER BY datum DESC";
$query = mysql_query($select)or die(mysql_error());
gebruiken om alles volgens datum uitgesorteerd te laten weergeven.
Fun ermee!
To