Php 对主题进行排序';s按降序排列(新主题和重播主题)

Php 对主题进行排序';s按降序排列(新主题和重播主题),php,mysql,Php,Mysql,我正在构建一个主题系统,我使用这个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`

我正在构建一个主题系统,我使用这个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());
我在第一行找到了新的主题,但任何重播的主题现在都会进入顶部

我希望我能很好地解释我的问题

问候
Piny

听起来您希望表中有两列,一列用于创建时间,另一列用于修改时间。“modified”列将是添加新答复时更新的列,但您可以使用“created”列进行排序,以便表始终按创建日期排序

对不起,如果我误解了

编辑
您应该按照上面的建议将这些列设置为int/datetime,以便按照您的预期执行排序。

MySQL有一个datetime数据类型,对date和lastRep列都使用它。然后更正insert和update查询以输入正确的日期时间。这可能会纠正排序问题,这至少是您应该尝试的第一件事。

您不希望
lastrep
成为
int
datetime
列吗
varchars
按字典顺序进行比较,这几乎肯定不是处理日期/时间时所需的…一个是(ID),另一个是(修改日期)。一个是创建ID,一个是修改时间