gpt4 book ai didi

php - 当sql表中不存在日期时,在php数组中存储零

转载 作者:行者123 更新时间:2023-11-29 10:51:34 27 4
gpt4 key购买 nike

我有一个 sql 表,如下所示:-

date    sales
2017-04-01 230
2017-04-02 120
2017-04-03 81
2017-04-04 911
2017-04-05 90
2017-04-06 11
2017-04-09 9
2017-04-10 140
2017-04-11 90

可以看出,2017-04-07和2017-04-08没有数据。以下是查询和 php 数组:-

$sql="select sales from sales_data where date >= '2017-04-03'";
$RS=mysql_query($sql);

while(($row = mysql_fetch_assoc($RS))) {
$sales_val[] = $row['sales'];
}

代码工作正常,但是我想存储一个零,以防日期不存在于 sql 表中。在这种情况下,如果日期不存在,是否可以在 php 数组中插入零?

最佳答案

试试这个:

$sql="select `date`,`sales` from `sales_data` where `date` >= '2017-04-03' ORDER BY `date`";
$qrslt = mysqli_query($db,$sql);


$min_date = '9999-99-99';
$max_date = '0000-00-00';
$sales_val = array();
while(($row = mysqli_fetch_assoc($qrslt))) {
$sales_val[substr($row['date'],0,10)] = $row['sales'];
$min_date = date('Y-m-d',strtotime($row['date'])) < $min_date ? date('Y-m-d',strtotime($row['date'])) : $min_date;
$max_date = date('Y-m-d',strtotime($row['date'])) >= $max_date ? date('Y-m-d',strtotime($row['date'])) : $max_date;
}

$sd = new DateTime($min_date);
$ed = new DateTime($max_date);
$num_days = date_diff($sd,$ed)->days;
$rslts = array();
$cnt = 0;

for($d = 0;$d <= $num_days;$d++) {
$dt = strtotime('+'.$d.' day',strtotime($min_date));
$dts = date('Y-m-d',$dt);
$rslts[$dts] = isset($sales_val[$dts]) ? $sales_val[$dts] : 0;
$cnt++;
}

echo "<p>\$rslts:<pre>".print_r($rslts,true)."</pre></p>";

关于php - 当sql表中不存在日期时,在php数组中存储零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43649213/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com