我知道我做错了,因为我只是通过名称搜索编辑了这个,有人可以帮我弄清楚我做错了什么吗?尝试搜索但没有任何结果。
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>"
<table class="table table-bordered">
<tr>
<th>Search by date
<input name="ftxtKeyword" type="date" id="ftxtKeyword" value="<?=$_GET["ftxtKeyword"];?>"> Between
<input name="btxtKeyword" type="date" id="btxtKeyword" value="<?=$_GET["btxtKeyword"];?>">
<input type="submit" class="btn btn-primary" value="Search">
</tr>
</table>
</form>
<?
if($_GET["ftxtKeyword"] != "")
{
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM service WHERE Service_date BETWEEN ".$_GET["ftxtKeyword"]." AND ".$_GET["btxtKeyword"]."";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
最佳答案
您的 SQL 语句没有正确引用日期。
代替
$strSQL = "SELECT * FROM service WHERE Service_date BETWEEN ".$_GET["ftxtKeyword"]." AND ".$_GET["btxtKeyword"]."";
改成
$strSQL = "SELECT * FROM service WHERE Service_date BETWEEN '".$_GET["ftxtKeyword"]."' AND '".$_GET["btxtKeyword"]."'";
注意事项:
请考虑@RiggsFolly 的建议...不要使用已弃用的函数,因为当您最终迁移到服务器(或将 PHP 升级到更高版本)时,您会遇到很多麻烦事。
避免对
echo
使用 PHP 短标签秒。而不是<?=
使用<?php echo
.为什么?想一想当您将代码移动到php.ini
的环境时会发生什么设置是否关闭了短标签?...令人头疼。一般来说,我建议使用
POST
作为表单的方法而不是GET
;当你使用GET
,当您点击提交按钮时,您就在 URL 中公开了参数等......并且不要使用
POST
或GET
直接在 SQL 语句中的值。使用准备好的语句并始终清理用户输入...作为黄金经验法则:永远不要相信用户 :)
关于php - 在日期之间搜索但提交搜索时没有显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49300085/