我觉得这不是获取和显示这些信息的最有效方式,但我似乎无法在任何地方找到直接适用于我所做的事情的答案。这样做。我需要查询数据库中每个月的每一天并显示该信息。即使没有数据,我也需要在每月的每一天显示。
我知道如何执行此操作的唯一方法是每天查询数据库。我知道查询数据库经常会减慢页面加载时间。我应该获取整个月的数据并搜索数组吗?
我正在做的基本想法:
// DATES OF MONTH ARE IN AN ARRAY CALLED $dates
foreach($dates as $key => $date){
$getdata = mysqli_query($link, "SELECT * FROM `Data` WHERE section = $section AND type = $typeid AND `date` = $datecomp");
$info = mysqli_fetch_assoc($getcatdata);
if(isset($info)){
// Display info
}
else {
// Display empty div
}
}
答案 0 :(得分:1)
运行查询,该查询将返回数据范围内的所有记录。
然后在PHP中滚动浏览日期和每个日期,检查数据库查询结果中是否有任何记录。
如果是 - 显示它们 如果不是 - 显示空div
没有太多细节,PHP就是这样:
$getdata = mysqli_query($link, "SELECT * FROM `Data` WHERE section = $section AND type = $typeid AND `date` BETWEEN $startDate AND $endDate");
$info = mysqli_fetch_assoc($getcatdata);
$dbData = Array(); // this will be an assoc array with dates as keys
foreach($info as $row) {
$dbData[$row["date"]] = $row;
}
$unixStartDate = strtotime($startDate);
$unixEndDate = strToTime($endDate);
for($i=$unixStartDate; $i<=$unixEndDate; $i=$i+60*60*24) {
if(array_key_exists(date('Y-m-d', $i), $dbData)){
// Display info of $dbData[date('Y-m-d', $i)]
}
else {
// Display empty div
}
}
注意:如果您的日期字段格式不是yyyy-mm-dd,则代码可能略有不同。
因此,作为摘要 - 您有一个数据库查询。它会更快。