2016-10-19 8 views
1

のために動作しません。私はこのような私のMySQLデータベースにいくつかのdatetime年代を持っている:PHP、MySQL; GROUP BYは日時

2016-11-15 10:00:00 
2016-11-16 10:00:00 
2016-11-17 10:00:00 
2016-11-17 12:00:00 
2016-11-17 19:30:00 
2016-11-20 10:00:00 
2016-12-15 10:00:00 
2017-11-15 10:22:00 

私は、出力したいのですが、1日1回のみ。それは意味:

2016-11-15 10:00:00 
2016-11-16 10:00:00 
2016-11-17 10:00:00 
2016-11-20 10:00:00 
2016-12-15 10:00:00 

は、これは私のコードです:

<?php 
$stmt = $pdo->prepare('SELECT date_db FROM my_table GROUP BY DATE(date_db) ORDER BY date_db'); 
$stmt->execute(); 

$results = $stmt->fetchAll(); 
foreach($results as $row) { 

    echo "<option value=\"".$row['date_db']."\">".$row['date_db']."</option>"; 
} 
?> 

しかし、これは実際に動作しません。いくつかの日は単に欠落しています。どうして?私は間違って何をしていますか?

+0

クエリでDISTINCTを使用するだけですか? – Naruto

+0

@Naruto '$ stmt = $ pdo-> prepare( 'SELECT DISTINCT date_db FROM my_table ORDER BY date_db');'?うまくいきません。 – David

+0

@RiggsFollyなぜですか? – David

答えて

0

これは現在作業コードです:

<?php 
$stmt = $pdo->prepare('SELECT date_db FROM my_table GROUP BY DATE(date_db) ORDER BY date_db'); 
$stmt->execute(array(':date' => $date)); 

$results = $stmt->fetchAll(); 
foreach($results as $row) { 

echo "<option value=\"".$row['date_db']."\">".$row['date_db']."</option>"; 
} 
?> 

それは今働いている理由を私は知らないが、それはあります。

1

は、この文字列で検索してください:

SELECT MIN(date_db) FROM my_table GROUP BY DATE(date_db) ORDER BY DATE(date_db)