【问题标题】:between statement not working properly in php pdobetween 语句在 php pdo 中无法正常工作
【发布时间】:2017-08-03 04:46:54
【问题描述】:

我在 php 数据对象中使用 'BETWEEN' 语句来显示在 2 个特定日期之间发布的帖子,但是,'date from' 不起作用,尽管'date to' 工作正常,如果我只设置'date from',不显示任何内容,但如果我只设置'date to',则显示正确的帖子,如果我同时设置'date from'和'date to',仍然显示正确的帖子,问题仅在我选择时只有“日期”,这是我的代码

$dateFrom = $_POST['dateFrom'];
$dateTo = $_POST['dateTo'];
$sql = "SELECT * FROM Main_Posts_table WHERE DATE(time) BETWEEN '$dateFrom' AND '$dateTo' ";
$data = $connect->query($sql);
echo "<center><table class = 'main_table'>";
foreach($data as $row){
echo "<tr><td><span id = 'time_of_post'>".$row['time']."</span><br/><br/>".$row['posts']."<br/><br/><span id = 'comment_button'>comments &#8609;</span></td></tr>";

}
echo "</table></center>";

【问题讨论】:

标签: php mysql date pdo between


【解决方案1】:

以下代码有效:

if(empty($_POST['dateTo']) && !empty($_POST['dateFrom'])){
    $sql = "SELECT * FROM Main_Posts_table WHERE DATE(time) BETWEEN '$dateFrom' AND '2080-12-31' ";
}
else{
    $sql = "SELECT * FROM Main_Posts_table WHERE DATE(time) BETWEEN '$dateFrom' AND '$dateTo' ";
}

如果没有设置 dateto,它被设置为 null,一个小于 datefrom 的值,所以我创建了一个单独的 if else 块,以检查仅设置 datefrom 的情况,然后我将 dateto 设置为非常高值,如果有人能想到更短的代码,请发布

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2023-04-10
    • 2016-03-05
    • 2016-03-11
    相关资源
    最近更新 更多