显示从start_date到end_date的Daywise记录

时间:2013-06-06 10:31:37

标签: php database date

我希望从开始日期到日期结束日期显示数据库中的记录...记录包含在记录插入时插入数据库的日期...记录不会每天存储,所以必须有一个两个日期之间的差距记录。所以现在我想要每天显示记录,如果特定日期没有记录我想要显示0而不是它。

我能够显示日期存储在数据库中的记录。但是无法显示数据库中没有日期的记录。

>$res=mysql_query("SELECT DISTINCT Date FROM TABLE_NAME WHERE Date BETWEEN startdate AND enddate");
>while($row = mysql_fetch_array($res))
>{
>  $date[] .= $row['Date'];
>}
>
>foreach($date as $da)
>{
>  $query = "SELECT * FROM TABLE_NAME WHERE Date = '".$da."' ";
>  $result = mysql_query($query);
>  while($row = mysql_fetch_array($result))
>  {
>   $prod = $row['No_of_prod'];
>  }
>  echo $prod;      
>}

1 个答案:

答案 0 :(得分:1)

您每天都将空条目放入数据库并获取它 在PHP代码中,您创建一个数组,其中键作为日期从开始日期开始直到它到达结束日期,并且它的值将为零(0)。获取数据库记录后,您可以使用array_merge 函数然后生成的最终数组可用于显示数据。根据您的创建日期范围的请求,代码为

$dt_start = new DateTime('20090101');
$dt_end   = new DateTime('20090222');
$arrDates[] = $dt_start->format('M');
while ($dt_start->modify('1 day') <= $dt_end) {
    $arrDates[$dt_start->format('Y-m-d')] = 0;  // Or whatever you want to do with it.
}

$arrDates包含日期范围。