【问题标题】:Show Daywise records from start_date to end_date显示从 start_date 到 end_date 的每日记录
【发布时间】:2013-06-06 10:31:36
【问题描述】:

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

【问题讨论】:

  • 你能分享一下你目前尝试过的SQL查询或代码吗?

标签: php database date


【解决方案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 包含日期范围。

【讨论】:

  • 查看日期范围代码。根据您的代码以yymmdd 格式输入日期。避免第零个数组值
猜你喜欢
  • 2020-09-09
  • 2021-09-27
  • 2023-03-12
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
相关资源
最近更新 更多