gpt4 book ai didi

php - 查找两个相等值之间的数据

转载 作者:行者123 更新时间:2023-11-29 10:18:52 26 4
gpt4 key购买 nike

我正在尝试从数据库获取数据(如果具有相同的值),这是 mySQLi 查询部分:

查询:

car_year BETWEEN '$yearArray[0]' AND '$yearToArray[0]'

例如:

car_year BETWEEN '2016' AND '2018'

第一个问题:

它返回 2016 年至 2017 年的数据,而不是 2018 年。

第二个问题:

如果值是这样的:

car_year BETWEEN '2018' AND '2018'

它不返回任何内容,但我想返回该值中的所有数据。

我也尝试过:

car_year >= '$yearArray[0]' AND car_year <= '$yearToArray[0]'

但是如果:

car_year >= '2017' AND car_year <= '2017'

它返回空,但应返回此值(2017)中的数据。

知道如何解决这两个问题吗?

<小时/>

更新:

if ($year && $yearTo) {

$cleanYearTo = mysqli_real_escape_string($connection, $yearTo);
$yearToArray = explode(",", $cleanYearTo);

$cleanYear = mysqli_real_escape_string($connection, $year);
$yearArray = explode(",", $cleanYear);

$sqli = "SELECT * FROM car WHERE car_year BETWEEN '$yearArray[0]' AND '$yearToArray[0]'";

// rest of code
}

示例网址:

mywebsite.com/index.php?y=1397,2018&yt=1397,2018

这不会返回任何内容。

最佳答案

你的问题很清楚,评论中的人可能会因为你没有在数据库中写入什么数据而感到困惑,但他们是对的,你的问题是你的数据类型,你的数据在数据库中有逗号就像 1397,2018 对吧?如果您尝试在 1397,2018 中查找 2018,请三思!这是不可能的,除非使用像 %2018% 这样的 LIKE 运算符,所以至少你的查询应该是这样的:

$sqli = "SELECT * FROM car WHERE car_year BETWEEN '$yearArray[0].",".$yearArray[1]' AND '$yearToArray[0].",".$yearToArray[1]'";

另一方面,除非使用 LIKE 运算符,否则您需要通过 1397,2018 查找年份,而不仅仅是 2018。您也可以在不爆炸的情况下执行此操作:

$sqli = "SELECT * FROM car WHERE car_year BETWEEN '$cleanYear' AND '$cleanYearTo'";

但推荐使用:

$sqli = "SELECT * FROM car WHERE car_year LIKE '%$cleanYear%' AND car_year LIKE '$cleanYearTo'";

关于php - 查找两个相等值之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49711383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com