Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 选择高于现在的值()_Php_Mysql - Fatal编程技术网

Php 选择高于现在的值()

Php 选择高于现在的值(),php,mysql,Php,Mysql,我有一个约会表,我想向用户显示他所做的高于当前日期的所有约会,以便他可以取消这些约会…我有这个查询 $result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND CONCAT(date,' ',start)>NOW()"); while($row = mysql_fetch_assoc($result)) { echo '&

我有一个约会表,我想向用户显示他所做的高于当前日期的所有约会,以便他可以取消这些约会…我有这个查询

$result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND CONCAT(date,' ',start)>NOW()");
while($row = mysql_fetch_assoc($result))
{

echo '<div class="record" id="record-',$row['id'],'">
    <a href="?delete=',$row['id'],'" class="delete">Delete</a>
    <strong>',$row['date'], $row['start'], $row['end'],'</strong>
  </div>';

}
我从我的回声中得到这个

Delete 2013-02-28  12:00:00  13:00:00
Delete 2013-02-28  20:00:00  21:00:00
Delete 2013-03-01  00:00:00  01:00:00
Delete 2013-02-28  21:00:00  22:00:00
Delete 2013-02-28  22:00:00  23:00:00
Delete 2013-03-01  02:00:00  03:00:00   

因此,如果当前时间是2013-02-28 15:25:00,那么它不应该显示低于2013-02-28 12:00:00 13:00:00的日期。

我假设
date
date
类型,并且
start
end
都类似于
Char
类型列。 您应该为
start
end
列使用
DateTime
类型,这样您就不需要执行任何concat操作。 现在您只需执行
start>Now()

$result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND STR_TO_DATE(CONCAT(date,' ',start))>NOW()");

列是什么:
date
start
?请回复查询和表描述能否在mysqlfiddle上设置一个虚拟表?我强烈建议您使用mysqli而不是mysql。可能会将
CONCAT(date',start)
函数更改为使用
STR\u to\u date(STR,format)的函数
看,我现在添加了表……很抱歉,我没有提到它,但date是日期类型,start和end是时间类型……因此,当我计算date和start时,我得到--Y-m-d H:i:s与now()函数的格式相同,但它仍然显示一些较低的日期,这可能是因为时区不同吗?您正在将字符串与datetime进行比较,这就是苹果和桔子。您应该使用上面评论中提到的
STR\u TO\u DATE()
,或者使用我的建议,这将使您的生活更加轻松。我尝试了您的代码,但得到…警告:mysql\u fetch\u assoc():提供的参数不是有效的mysql结果资源。。。
$result = mysql_query("SELECT id,date,start,end FROM jos_jxtc_appbook_appointments WHERE userident='$idusera' AND STR_TO_DATE(CONCAT(date,' ',start))>NOW()");