Php 按MySQL日期字段分组

Php 按MySQL日期字段分组,php,mysql,datetime,group-by,grouping,Php,Mysql,Datetime,Group By,Grouping,可能重复: 我有一个数据库,它保存了我所在城市的现场乐队演出,每一场演出都作为一条记录存储在我的MySQL数据库中 我想在白天分组,在我的网站上看演出。但GROUP BY函数只显示1条记录。如何在一个日期内显示所有演出 我的MySQL结构 ID date content 1 2012-12-02 00:00:00 Gig 1 2 2012-12-02 00:00:00 Gig 2 1 2012-12-03 00:00:00

可能重复:

我有一个数据库,它保存了我所在城市的现场乐队演出,每一场演出都作为一条记录存储在我的MySQL数据库中

我想在白天分组,在我的网站上看演出。但GROUP BY函数只显示1条记录。如何在一个日期内显示所有演出

我的MySQL结构

ID  date                    content
1   2012-12-02 00:00:00     Gig 1
2   2012-12-02 00:00:00     Gig 2
1   2012-12-03 00:00:00     Gig 1
2   2012-12-03 00:00:00     Gig 2
我想表现得像这样

-- Sun 02 December 2012 --
Gig 1
Gig 2

-- Mon 03 December 2012 --
Gig 1
Gig 2
试试这个

   SELECT  * 
   FROM    your_table
   WHERE  date = '".$your_variable_of_selectedDate."'
   GROUP BY date
   ORDER BY date
编辑: 如果你没有日期变量,那么就给一个具体的日期

   SELECT  date , content 
   FROM    your_table

   GROUP BY date
   ORDER BY date

不要在数据库层中对结果进行分组,而是在表示层中进行分组。例如,使用PDO:

$dbh = new PDO("mysql:dbname=$dbname", $username, $password);

$qry = $dbh->query('
  SELECT   UNIX_TIMESTAMP(date), content
  FROM     gigs
  WHERE    date > NOW()
  ORDER BY date
');

if ($qry->execute()) {

  // output headers
  echo '<h1>Upcoming gigs</h1>';

  $row = $qry->fetch();
  while ($row) {
    $current_date = $row['date'];

    // output $current_date initialisation
    echo '<h2>', date('D d F Y', $current_date), '</h2><ul>';

    do {
      // output $row details
      echo '<li>', htmlentities($row['content']), '</li>';
    } while ($row = $qry->fetch() and $row['date'] == $current_date);

    // output $current_date termination
    echo '</ul>';
  }

  // output footers

}

格式化和显示应在客户端完成,不在SQL中。我尝试过使用GROUP BY,但它只显示每个日期的一条记录。您使用的SQL语句是什么?您正在从测试组BYDATE中查找order BYDATE ASCSELECT*。请详细说明所选日期位的$your变量?您将给出的日期,以显示您的演出日期。有选择日期的选项吗?如果你没有日期变量,就用一个日期来代替,我明白你的意思了。我已经输入了一个日期,但它仍然分别显示同一天的演出。你分别是什么意思?举例说明如何?它是这样显示的2012年12月2日星期日-2012年12月2日星期日-2012年12月2日星期一-2012年12月3日星期一-2012年12月3日星期一-2012年12月3日星期一-Gig 2Hi感谢您的帮助。我在这段代码中遇到了一个错误,虽然是致命的错误:未捕获的异常“PDOException”带有消息“无效的数据源名称”。您可能需要更改以满足您的需要。啊,是的,我很愚蠢。现在已经整理好了,脚本正在运行,但是没有gig信息。日期存储为DATETIME字段,可以吗?应该可以。有什么东西在展示吗?头球?对不起,又是个白痴了!对它进行了分类,它工作得非常好。非常感谢!