0

重複の可能性:
PHP/MySQL で日ごとにグループ化された日記イベントの一覧表示

私は自分の町のバンドのライブを保持するデータベースを持っています。各ライブは MySQL データベースに記録として保存されています。

日ごとにグループ化して、自分のウェブサイトでギグを確認したいと思います。ただし、GROUP BY 関数は 1 つのレコードしか表示しません。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
4

2 に答える 2

0

これを試して

   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
于 2012-12-02T17:57:17.343 に答える
0

データベース層で結果をグループ化しないでください。プレゼンテーション層で行います。たとえば、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

}
于 2012-12-02T18:18:06.870 に答える