【发布时间】:2015-01-16 08:21:22
【问题描述】:
我有一个表,其中有一个名为 hdate 的列。我已经用 date 属性设置了这个。
我有一个表格:
<H2>Search By Date</H2></div>
<form name="attdate" action="datesearch.php" method="post">
From :<input id="datepicker" name = "startd"> To: <input id="datepicker1" name = "endd">
<input type="submit" value="Search Records">
现在我的意图是允许用户输入开始日期和结束日期并获取所有具有这些日期的行。
<?php
include 'config.php';
$startd = ($_POST['startd']);
$endd = ($_POST['endd']);
$startd = mysqli_real_escape_string($con,$startd);
$endd = mysqli_real_escape_string($con,$endd);
$sql = "SELECT * FROM handover WHERE hdate AND >= '" . $startd . "' AND <'"
.$endd. "' + ‘ 23:59:59’"
;
$result = mysqli_query($con,$sql);
$count=mysqli_num_rows($result);
if($count==0 ){
echo "</br></br></br></br></br></br></br><p> No Matching results found</p>";
}
else{
while($row = mysqli_fetch_array($result)) {
echo 'here are your results';
我的日期以与日期选择器设置的相同格式进入数据库以获取 hdate。
我成功获得查询其他列的结果。有任何想法吗?在几个网站上阅读后添加注意时间。我已阅读有关堆叠的其他问题,但它们与用户输入无关。
在使用当前设置进行测试时,我没有收到错误,只是“没有匹配项,所以我猜查询是有效的,但没有正确设置来查询我的 hdate 列。
我可以轻松更改列,所以如果最简单的解决方案是使用时间戳或其他东西,那么可以这样做。
<?php
include 'config.php';
$startd = ($_POST['startd']);
$endd = ($_POST['endd']);
$startd = mysqli_real_escape_string($con,$startd);
$endd = mysqli_real_escape_string($con,$endd);
$startd = '2014-11-18';
$endd = '2014-11-20';
$sql = "SELECT * FROM handover WHERE hdate >= date('" . $startd . "') AND hdate <
ADDDATE(date('" . $endd . "'), INTERVAL 1 DAY)";
echo $sql; // run in mys
$result = mysqli_query($con,$sql);
$count=mysqli_num_rows($result);
if($count==0 ){
echo "</br></br></br></br></br></br></br><p> No Matching results found</p>";
}
else{
while($row = mysqli_fetch_array($result)) {
我仍然只是得到一个“不匹配”的回声
【问题讨论】:
-
检查你的语法:
hdate AND >= '" . $startd . "' AND <'应该是hdate >= '" . $startd . "' AND hdate <'