Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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 在同一列上执行LIKE和BETWEEN_Php_Html_Mysql_Search - Fatal编程技术网

Php 在同一列上执行LIKE和BETWEEN

Php 在同一列上执行LIKE和BETWEEN,php,html,mysql,search,Php,Html,Mysql,Search,我正在尝试建立一个在线搜索数据库。我希望用户能够按年份搜索所有条目,因此如果他们想要特定年份,则会有一个搜索框。如果他们想输入年份范围,我会设置两个搜索框,分别映射到变量“startyear”和“endyear” <?php $year=$_GET['year']; $startyear=$_GET['startyear']; $endyear=$_GET['endyear']; $result = mysql_query(" SELECT * FR

我正在尝试建立一个在线搜索数据库。我希望用户能够按年份搜索所有条目,因此如果他们想要特定年份,则会有一个搜索框。如果他们想输入年份范围,我会设置两个搜索框,分别映射到变量“startyear”和“endyear”

<?php
$year=$_GET['year'];
$startyear=$_GET['startyear'];
$endyear=$_GET['endyear'];                    
$result = mysql_query(" SELECT * FROM DATABASE WHERE year(date_on_ledger) LIKE '%$year%' AND year(date_on_ledger) BETWEEN '%$startyear%' AND '%$endyear%' ");

您应该使用或代替AND。

您应该使用或代替AND。

请。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO。说。即使是这样也不安全!
year
列的格式是什么?请尝试使用或而不是AND。另外,试着从$startyear和$endyear中删除百分比。我将研究PDO,尽管我想弄清楚为什么这不起作用,因为这似乎是一个非常基本的想法。“年份”列将所有内容存储为字符串。我尝试删除百分号并使用或,但这只会使它输出数据库中的每个条目。请。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO。说。即使是这样也不安全!
year
列的格式是什么?请尝试使用或而不是AND。另外,试着从$startyear和$endyear中删除百分比。我将研究PDO,尽管我想弄清楚为什么这不起作用,因为这似乎是一个非常基本的想法。“年份”列将所有内容存储为字符串。我尝试删除百分号并使用或,但这只会使它输出数据库中的每个条目。当我执行“$result=mysql\u查询(“从数据库中选择*,其中年份(账本上的日期)介于“%$year%”和“%$endyear%”之间,如“%$year%”或year(账本上的日期))”时,它会显示数据库中的每个条目。我认为这是因为它匹配了所有包含“”或介于开始和结束年份之间的内容,并且每个条目都包含“”。当我执行“$result=mysql\u查询(“从数据库中选择*,其中年份(账本上的日期)如“%$year%”或“%$startyear%”和“%$endyear%”之间的年份(账本上的日期))”时,它会调出数据库中的每个条目。我认为这是因为它匹配所有包含“”或介于年初和年末之间的内容,并且每个条目都包含“”。