繁体   English   中英

如何按数据库中的先前日期排序?

[英]How to sort by previous date in database?

我想问的是如何从数据库记录中选择,并且我的php代码能够按日期对以前的日期进行排序,这就是我想在界面中显示的内容:

2011-10-01

2011-10-01

2011-10-01

something here..


2011-10-02

2011-10-02

something here..


2011-10-03

something here..

在我的数据库中,某些以前的日期有很多重复的日期,而有些只是一个记录,因此我需要对其进行排序以使界面更清晰

这是我的代码(但不起作用):

$Current = date("Y-m-d" ,strtotime("now"));

$query= mysql_query("SELECT date FROM staff WHERE date < '$Current'");
while($res=mysql_fetch_array($query)){
echo $res['date'];
echo "something here";
}

谢谢

您不能简单地使用它吗?

SELECT `date` FROM staff WHERE `date` < NOW() ORDER BY `date`

或(如果您只需要不同的日期)

SELECT DISTINCT `date` FROM staff WHERE `date` < NOW() ORDER BY `date`
("SELECT count(*), date FROM staff WHERE date < '$Current' GROUP BY date ORDER BY date asc"); 

将它们与一个计数分组,然后您可以写出每个日期计数所指示的次数,然后写出您的附加值。

认为您可以通过对数据库中的结果进行排序并通过分组删除重复项来实现

SELECT date FROM staff WHERE date < '$Current' ORDER BY date ASC GROUP BY date;

您需要的代码非常简单。
您只需要了解循环的含义并在迭代之间“记住”状态

//a variable to remember the old date
$olddate = '';
//i named this variable $sql because it actually contains an sql query
$sql = "SELECT date FROM staff WHERE date < '$Current'";
//I named this variable $res because it actually contains NOT sql query, but mysql RESource.
$res = mysql_query($sql) or treigger_error(mysql_error()." ".$sql);
//I named this variable $row because it actually represents a row from the database.
while($row=mysql_fetch_array($res)) {
  if ($olddate and $olddate != $row['date']) {
    echo "something here";
  }
  echo $row['date'];
  $olddate = $row['date'];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM