hey iedereen:)

Ik heb een forumpje geschript alleen nu worden de reactie door elkaar weer gegeven. Hoe kan ik er voor zorgen dat de laatste reactie achteraan komt te staan??

dit is mijn tabel:

CREATE TABLE `forumreactie` (
  `id` bigint(11) unsigned NOT NULL auto_increment,
  `forum_id` int(20) NOT NULL default '0',
  `cat` varchar(255) NOT NULL default '',
  `naam` varchar(225) default 'Geen',
  `bericht` text,
  `datum` varchar(255) default '00:00 00-00-00',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ;
ORDER BY
Omdat je de datum in een varchar veld hebt staan, kan MySQL er niet op sorteren. Zet datum in een datetimeveld. Die is daar ook voor bedoeld.
Als ik ORDER BY id DESC doe dan komt de laate boven aan en ik weet zo ook 1,2,3 geen andere order by
Robert schreef op 02.03.2007 13:22
Omdat je de datum in een varchar veld hebt staan, kan MySQL er niet op sorteren. Zet datum in een datetimeveld. Die is daar ook voor bedoeld.


Dat wil ik ook wel maar ik sla hem zo op: 13:23 02-03-07 met datetime gaat dat niet?
Nee maar je kan hem er wel op die manier weer uithalen. Opslaan doe je gewoon met NOW() ipv een waarde in de insert query:


INSERT INTO tabel (datum) VALUES (NOW())


Het ophalen in het format dat je nu gebruikt doe je dan zo:
SELECT DATE_FORMAT(datum,'H:i d-m-y') AS show_datum FROM tabel
van onze forum genoot uit rio ooit dit geleerd:

<?
$query_mes = "SELECT
titel,inhoud,
CONCAT(
' ',
ELT(DAYOFWEEK(datum),
'Zondag',
'Maandag',
'Dinsdag',
'Woensdag',
'Donderdag',
'Vrijdag',
'Zaterdag'
),
' ',
DAYOFMONTH(datum),
' ',
ELT(MONTH(datum),
'jan',
'feb',
'mrt',
'apr',
'mei',
'jun',
'jul',
'aug',
'sep',
'okt',
'nov',
'dec'
),
' \'',
INSERT(YEAR(datum),1,2,'')
) AS tijd
FROM
page
WHERE
link_con = '$_GET[page]'";

// dan komt er: Vrijdag 1 mrt '07 te staan
?>
@bart

wat heeft dat met het topic te maken? Maargoed het zal wel kunnen werken, maar je moet wel die $_GET['page'] buiten quotes houden.

Reageren