Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql php混淆复合体_Php_Sql_Date - Fatal编程技术网

sql php混淆复合体

sql php混淆复合体,php,sql,date,Php,Sql,Date,PHP代码(相关) $db='2011-02-28'$a=‘2011-02-01’ 这是查询的一部分 LEFT JOIN abc ON abc.date between '$a' and '$db' 此查询显示以下结果: 1 2011-02-08 6 2011-02-09 6 2011-02-11 1 2011-02-13 但我想要的是,如果其他日期有n行,则结果为0。您不能这样做(至少在不加入包含所有日期的表的情况下) 为没有数据的日期显示0

PHP代码(相关)

$db='2011-02-28'$a=‘2011-02-01’

这是查询的一部分

    LEFT JOIN
        abc
    ON
        abc.date between '$a' and '$db'
此查询显示以下结果:

1 2011-02-08
6 2011-02-09
6 2011-02-11
1 2011-02-13
但我想要的是,如果其他日期有n行,则结果为0。

您不能这样做(至少在不加入包含所有日期的表的情况下)

为没有数据的日期显示0是应用程序的工作,而不是数据库。这很简单,只需编写一个从开始日期到结束日期的循环,并为结果集中没有行的日期输出0

SQL的任务是告诉您哪些数据存在,而不是哪些数据不存在

while ($row = mysql_fetch_array($result)) {
    $results[$row['date']] = $row['count'];
}

for ($time = strtotime('2011-02-01'); $time <= strtotime('2011-02-28'); $time += 86400) {
    $datestr = date('Y-m-d', $time);
    if (isset($results[$datestr])) {
        echo "Count for date $datestr: " . $results[$datestr];
    } else {
        echo "Count for date $datestr: 0";
    }
}
while($row=mysql\u fetch\u array($result)){
$results[$row['date']=$row['count'];
}

对于($time=strotime('2011-02-01');$time从您提供的关于您试图解决的问题的有限信息来看,我猜您是在尝试寻找“免费约会”或类似的服务

如果是这样的话,这应该会帮助你


此网站有许多查询模式,可以帮助您思考和设计数据库。

切题注释:没有日期2011-02-30。二月只有28天。从开始日期到结束日期的循环,每隔一天递增:
for($date=strottime('2011-02-01'));$date我在答案中添加了一个更大的示例。我尝试删除$datestr=date('Y-m-d',$time),但它当时没有显示任何数据?
echo
是生成输出的PHP命令。这是修改输出的内容。但是这$datestr=date('Y-m-d',$time)是必需的吗?