根据日期(月和年)显示结果

时间:2011-08-01 20:51:36

标签: php

我在数据库中加载了数据,每行都有一个日期列

目前我将所有结果都拉到了一个页面上,但我想把它分成几个月。 我的页面上有按钮,单击时应该只显示相应的结果,例如当单击2012年1月按钮时,将显示该月的所有结果

以下是我试图实现的一个例子: http://i.stack.imgur.com/PY7iN.jpg

=============================================== ==================================

<?php
$con = mysql_connect("localhost", "username", "pass");
if (!$con)
{
 die('Could not connect: ' . mysql_error());
}

mysql_select_db("database", $con);
$result = mysql_query("SELECT * FROM tablename"); 

$num_rows = mysql_num_rows($result);

echo "<table border='0' cellspacing='0'>";

while($row = mysql_fetch_array($result))
{
$i++;
if($i%2==0) $class="cell1"; else $class="cell2";
echo "<tr class='$class'>";
echo "<td>".$row["firstname"]." ".$row["lastname"]." thinks that it will happen on      
<span class=datecolor>".date('l jS F Y',strtotime($row['date']))."</span></td>";
 echo "</tr>";
 }  

  echo "</table>";

  mysql_close($con);
  ?> 

=============================================== ==========================

我正在寻找一些帮助,我可以通过点击按钮来显示每个月的结果,而不会一次显示所有结果。

此外,当首次查看页面时,ID会自动显示当月的结果,例如,如果现在查看它会显示8月结果

希望你能帮忙

3 个答案:

答案 0 :(得分:1)

要解决您的第一个问题(一次显示一个月),最好的办法是让您的数据库为您完成所有工作。现在你的SQL SELECT语句看起来像

SELECT * FROM tablename

您想要添加WHERE子句,该子句将限制此查询仅显示特定月份的行...类似

SELECT * FROM tablename WHERE date BETWEEN '05/01/2011' AND '05/31/2011'

您可能需要针对特定​​的数据库引擎或设置进行调整。 Here's one WHERE tutorial;你可以在网上找到更多。

答案 1 :(得分:0)

您可以将所有按钮都链接到页面,并使用指定月份的查询字符串(例如:www.mysite.com/mypage?month=september)。然后从查询字符串中获取月份,并仅选择该月份中的行。

请参阅:

PHP parse_str()

$_SERVER['QUERY_STRING']

MySQL Select a Date Range

答案 2 :(得分:0)

这样的东西
$month = isset($_GET['month']) ? intval($_GET['month']) : 0;
$year = isset($_GET['year']) ? intval($_GET['year']) : 0;

if( empty($month) ){
    $month = date('n');
}
if( empty($year) ){
    $year = date('Y');
}

$query = mysql_query('SELECT * FROM table_name WHERE MONTH(date_field)="'.$month.'" AND YEAR(date_field)='.$year.'"');
// or maybe use BETWEEN syntax

while( false!==($row=mysql_fetch_assoc($query)) ){
    // do something...
}

需要年份,因为一个月的数字可能属于不同的年份数字(03-2010,03-2011等等),因此当您的数据涵盖不同年份的日期时,您无法确定您只需拥有哪些数据月