[英]Separate my Mysql Group Results
好的,我有一個來自我的 mysql 數據庫的結果列表,基本上它列出了我網站查看的頁面並按日期對它們進行分組。 現在結果很好,一切都很好地分組了。 並像這樣顯示在頁面上。
29/03/2012 09:18 頁面名稱
29/03/2012 09:24 頁面名稱
現在我想做的是看看我是否可以更改格式以便結果像這樣列出
29/03/2012
頁面名稱
頁面名稱
30/03/2012
頁面名稱
頁面名稱
我遇到的問題之一是日期字段是日期時間,雖然我可以從變量中刪除日期並以這種方式使用日期,但我不確定如何列出上面列出的結果。 以下是我當前的代碼,
$query = "SELECT date, page_name FROM page_views GROUP BY date";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo $row['date']. " - $". $row['page_name'];
echo "<br />";
您可以使用 PHP 中的 date() 來格式化您的日期時間:
while($row = mysql_fetch_array($result)) {
echo date("d/m/Y", strtotime($row['date']));
echo "<br />";
echo $row['page_name'];
echo "<br />";
}
這將導致:
29/03/2012
頁面名稱
30/03/2012
頁面名稱
編輯:
這是我現在唯一的解決方案:
//First you select only the DISTINCT DATEs without TIME
$query1 = 'SELECT DISTINCT DATE_FORMAT(date, %d/%m/%Y") as date FROM page_views';
$result1 = mysql_query($query1) or die(mysql_error());
//Create a while-loop to store DATE data in array
while($row1 = mysql_fetch_array($result1)) {
$array[]['date'] = $row1['date']
//SELECT the page_names where the date is LIKE the date in array
$query2 = 'SELECT page_name FROM page_views WHERE date LIKE "%'.$row1['date'].'%"';
$result2 = mysql_query($query2) or die(mysql_error());
//Create a second while-loop to store the pagenames data in array who fits to the date
while($row2 = mysql_fetch_array($result2) {
$array[]['pagenames'][] = $row2['page_name'];
}
}
print_r($array);
//This will output this:
$array = Array(
[0] => Array(
[date] => 29/03/2012
[pagenames] => Array(
[0] => pagename1
[1] => pagename2
)
)
[1] => Array(
[date] => 30/03/2012
[pagenames] => Array(
[0] => pagename1
[1] => pagename2
)
)
)
//use foreach to display the data
foreach($array as $entry) {
echo $entry['date'];
echo '<br />';
foreach($entry['pagenames'] as $pagename) {
echo $pagename;
echo '<br />';
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.