我尝试在two datetimepicker中基于输入进行搜索,并将结果显示到表中,但是当我选择特定的日期时,所有数据都会显示出来。我正在使用mysql和pdo。
这是我的密码。
<?php
$date1 = date("Y-m-d", strtotime($_POST['date1']));
$date2 = date("Y-m-d", strtotime($_POST['date2']));
$db = new PDO('mysql:host=localhost;dbname=db_search;charset=utf8mb4',
'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$sql = "select * from book";
$stmt = $db->prepare($sql);
$stmt->execute();
$row_count = $stmt->rowCount();
if($row_count > 0){
while($row=$stmt->fetch(PDO::FETCH_ASSOC)) {
?>
<tr>
<td><?php echo $row['ISBN']?></td>
<td><?php echo $row['title']?></td>
<td><?php echo $row['author']?></td>
<td><?php echo date("m/d/Y", strtotime($row['date_published']))?></td>
</tr>
<?php
}
}else{
echo '
<tr>
<td colspan = "4"><center>Record Not Found</center></td>
</tr>
';
}
?>
1条答案
按热度按时间l3zydbqr1#
实际上,您还没有在查询中包含日期条件,这就是为什么它仍然返回所有数据的原因。将查询更改为
如果你知道的话
$date1
小于$date2
,你可以简化为请注意,您的代码对sql注入是完全开放的,您应该真正使用准备好的语句。查看此问题了解更多信息。。。