作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我从这样的查询开始:
$query_price = "SELECT price_id, dt FROM lh_dates WHERE (dt BETWEEN '$firstdate' AND '$lastdate') AND hid = '$hid'";
然后像这样操作结果:
$i = 0;
$price_id_list = array();
while ($row_price = mysql_fetch_assoc($price)) {
$price_id_list[$i] = $row_price['price_id'];
$date_list[$i] = $row_price['dt'];
$i++;
}
后来我再次使用 $i 构建一个包含日期列的表。我遇到的问题是 lh_dates 表中可能不存在 $firstdate 到 $lastdate 范围内的某些日期。这减少了 $i 的迭代次数并弄乱了结果表。
当数据库表中不存在日期时,有什么方法可以在查询中得到 NULL 或零或无结果吗?
更新
查看了类似的问题后,我意识到我需要从 $query_price 创建一个数组,然后循环遍历日期范围内的每个日期的数组并添加任何缺失的日期。所以我必须做到这一点:
$firstdate = date('Y-m-d',$startdate);
$lastdate = date('Y-m-d',strtotime('+17 days',strtotime($firstdate)));
$query_price = "SELECT price_id, dt FROM lh_dates WHERE (dt BETWEEN '$firstdate' AND '$lastdate') AND hid = '$hid'";
$price = mysql_query($query_price, $MySQL) or die(mysql_error());
$alldates = array(); // Array of all rows within the date range
while ($row_price = mysql_fetch_assoc($price)) {
$alldates[]=$row_price;
}
//Now loop through the date range and fill in any empty dates in the array
$thisdate = $firstdate;
while (strtotime($thisdate) <= strtotime($lastdate)){
// WHAT GOES IN HERE?
$thisdate = date('Y-m-d',strtotime('+1 day',strtotime($thisdate)));
};
现在我正在努力添加必要的代码来填充缺失的日期。
最佳答案
$price_id_list = array();
while ($row_price = mysql_fetch_assoc($price)) {
$price_id_list[$row_price['price_id']] = $row_price['price_id'];
$date_list[$row_price['price_id']] = $row_price['dt'];
}
关于php - 当数据库行为空时如何在 mySQL 结果中获取 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25787213/
我是一名优秀的程序员,十分优秀!