0

我想从开始日期到结束日期每天显示数据库中的记录...记录的日期在记录插入时间插入到数据库中...记录不是每天存储的,所以两个之间必须有间隔日期记录。所以现在我想每天显示记录,如果特定日期没有记录,我想显示 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;      
>}
4

1 回答 1

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包含日期范围。

于 2013-06-06T10:38:06.303 回答