我正在构建一个主题的系统,我使用这个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());
ok,现在当我想输出线程,我想排序的主题的(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());
我在第一行得到了新主题,但任何重放的主题现在仍然在顶部。
我希望我把我的问题解释清楚了。
的问候松树的
听起来您希望在表中有两列,一列用于创建时间,另一列用于修改时间。"modified"列将是在添加新回复时更新的列,但您可以使用"created"列排序,因此您的表始终按照创建日期排序。
抱歉,如果我误解了。
编辑而且,您一定要像上面建议的那样,将这些列设置为int/datetime,以便按照您的期望执行排序。
MySQL有一个dateTime数据类型,在date和lastRep列中都使用它。然后更正插入和更新查询,以输入正确的dateTimes。这可能会纠正排序问题,这至少是您应该尝试的第一件事。