按降序排序主题(新主题和重播主题)


sorting the topic's by descending ( new topics and replayed topics )

我正在构建一个主题的系统,我使用这个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。这可能会纠正排序问题,这至少是您应该尝试的第一件事。