我正在构建一个主题的系统我使用这个mysql
CREATE TABLE `ftopics` (
`id` int(11) unsigned NOT NULL auto_increment,
`catid` int(11) NOT NULL,
`userid` int(11) NOT NULL,
`name` varchar(100) NOT NULL,
`full` text NOT NULL,
`date` varchar(100) NOT NULL,
`hits` varchar(100) NOT NULL,
`tags` varchar(255) NOT NULL,
`lastrep` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;
当成员为主题添加新重播时更新的列(lastrep)
$time=time();
$result = mysql_query("UPDATE ftopics SET lastrep='$time' WHERE id='$tid'")
or die(mysql_error());
好的,现在我想输出线程,我想在同一时间按顺序(id降序)和(lastrep降序)排序主题。
解释>>>>
当我发布一个新主题时,它会显示在输出的第一行,但是当另一个用户在另一个主题中发布重播时,它应该显示表输出中的第一个。
我用这个查询输出
$get_topics = mysql_query("select id,catid,userid,name,date,lastrep from ftopics where catid='$catid' ORDER BY lastrep DESC, id DESC") or die(mysql_error());
我在第一行获得了新主题,但任何重播主题现在仍然会进入顶部。
我希望我能很好地解释我的问题。
问候 松树的
答案 0 :(得分:0)
听起来你想在你的表中有两列,一列用于创建时间,一列用于修改时间。添加新回复时,“已修改”列将是您更新的列,但您可以使用“已创建”列进行排序,因此您的表始终按创建日期排序。
对不起,如果我误解了。
EDIT 你应该按照上面的建议将这些列设置为int / datetime,以便按照你的预期执行排序。
答案 1 :(得分:0)
MySQL有一个dateTime数据类型,用于date和lastRep列。然后更正插入并更新查询以输入正确的dateTimes。这可能会纠正排序问题,至少是你应该尝试的第一件事。