Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
Php MySQL未根据日期值正确计算行数_Php_Mysql_Database_Datetime - Fatal编程技术网

Php MySQL未根据日期值正确计算行数

Php MySQL未根据日期值正确计算行数,php,mysql,database,datetime,Php,Mysql,Database,Datetime,我试图计算具有相同日期值的行数,但它不会这样做。当我知道存在具有相同日期值的行时,我无法使其计数高于3。这是我的密码: $getDate = getdate(); $d = $getDate['mday']; $m = $getDate['mon']; $y = $getDate['year']; $date = $y . '-' . $m . '-' . $d; $query = "SELECT COUNT(*) FROM websites WHERE date='$date'"; m

我试图计算具有相同日期值的行数,但它不会这样做。当我知道存在具有相同日期值的行时,我无法使其计数高于3。这是我的密码:

$getDate = getdate();

$d = $getDate['mday'];
$m = $getDate['mon'];
$y = $getDate['year'];

$date = $y . '-' . $m . '-' . $d;


$query = "SELECT COUNT(*) FROM websites WHERE date='$date'";
mysql_select_db('garrettl_awards');
$total = mysql_query( $query, $conn );

$loop = $total/4;
echo $loop;
以下是我的数据库表的图片:

尝试此查询

SELECT COUNT(*) FROM websites WHERE date>='$date' AND date < ('$date' + INTERVAL 1 DAY)
从日期>=“$date”和日期<(“$date”+间隔1天)的网站中选择计数(*)
它将处理您的
date
列包含某些值的可能性,这些值并非精确地在午夜出现。

尝试此查询

SELECT COUNT(*) FROM websites WHERE date>='$date' AND date < ('$date' + INTERVAL 1 DAY)
从日期>=“$date”和日期<(“$date”+间隔1天)的网站中选择计数(*)

它将处理您的
date
列中可能包含的某些值不是精确到午夜的值。

尝试以下操作,可能对您有用;)

如果
$date
的格式类似于yyyy-mm-dd(2016-05-01):

或格式为yyyy-m-d,如(2016-5-1):

编辑:

试试这个;)


尝试以下内容,可能对您有用;)

如果
$date
的格式类似于yyyy-mm-dd(2016-05-01):

或格式为yyyy-m-d,如(2016-5-1):

编辑:

试试这个;)

如果要比较“文本”两个值,请确保它们的格式相同:

设置日期参数的格式:

// For month and day to be on 2 digits
$d = sprintf("%'.02d", $getDate['mday']);
$m = sprintf("%'.02d", $getDate['mday']);
以及数据库中的日期:

SELECT COUNT(*) FROM websites WHERE date_format(date,'%Y-%m-%d')='$date'
它应该可以解决您的问题。

如果您想比较“文本”两个值,请确保它们的格式相同:

设置日期参数的格式:

// For month and day to be on 2 digits
$d = sprintf("%'.02d", $getDate['mday']);
$m = sprintf("%'.02d", $getDate['mday']);
以及数据库中的日期:

SELECT COUNT(*) FROM websites WHERE date_format(date,'%Y-%m-%d')='$date'

这应该可以解决你的问题。

@Garrett你能发布一些样本数据吗?是的,比如什么?很抱歉,我是新来的。@Garrett-like数据在您的表格中,以及您的预期数据。我的问题中包括了,您看不到吗?@Garrett您的帖子格式不正确,所以我看不到,反正我已经为您编辑过,您的专栏
date
的类型是什么?@Garrett您可以发布一些示例数据吗?是的,比如什么?很抱歉,我是新手。@您表中类似Garrett的数据和您期望的数据。我的问题中包括了,您看不到吗?@Garrett您的帖子格式不正确,所以我看不到,反正我已经为您编辑过了,您的列
date
的类型是什么?