gpt4 book ai didi

php - 使用 PHP 在 mysql 中搜索存储有多个名称并用 ** 连接的项目

转载 作者:行者123 更新时间:2023-11-29 00:07:39 25 4
gpt4 key购买 nike

我正在尝试使用包含 ** 的值在 PHP 中搜索我的数据库以分隔不同的值。我的数据库的一个例子是:

GS 300**GS3000

我想使用 GS 300 或 GS​​3000 在我的数据库中搜索值。

我的脚本是:

$query = "SELECT DISTINCT(parts_cats.Part_Type) FROM parts_cats WHERE stock.Item_Specifics_Type IN ('$ids') AND stock.stock_item!='' and Make='$Make' AND Model LIKE  '%" . mysql_real_escape_string($Model) .  "%'"

目前,对于非双星号值(例如,如果搜索 G3 500)搜索工作正常,但它不会返回 GS 300**GS3000 的结果。

最佳答案

如果您想找到一个或另一个模型,您应该这样做(尽管非常昂贵)。我不知道 ** 是什么以及您如何将内容存储在数据库中...

"SELECT DISTINCT(parts_cats.Part_Type) 
FROM parts_cats
WHERE stock.Item_Specifics_Type IN ('$ids')
AND stock.stock_item!='' AND Make='$Make'
AND ( Model LIKE '%" . mysql_real_escape_string($ModelOne) . "%'
OR Model LIKE '%" . mysql_real_escape_string($ModelTwo) . "%')"

或结果查询

SELECT DISTINCT(parts_cats.Part_Type) 
FROM parts_cats
WHERE stock.Item_Specifics_Type IN ('$ids')
AND stock.stock_item!='' and AND='$Make'
AND ( Model LIKE '%GS 300%'
OR Model LIKE '%GS3000%')

编辑:

好的,我会做的是有一个表,其中包含如下字段 id concatNames并有类似 5, GS 300**GS3000 的条目在里面..然后你得到用户输入的任何内容,然后使用我上面写的查询..你试过了吗?

你可以让用户输入这样一个字符串:

$str = "something**something2**something3";

然后你可以使用

$array = explode("**",$str)

或者你可以有多个 <input>就是用户可以单独放东西。

无论哪种情况,您都有一个包含所有不同值的 $array..

然后您动态构造查询的 WHERE 部分为

"AND (Model Like '%".$array[0]."%' OR  Model Like '%".$array[1]."%' OR Model Like '%".$array[2]."%')"

即使用户输入 GS300 也会起作用, GS3000单独或GS 300**GS3000GS3000**GS 300

关于php - 使用 PHP 在 mysql 中搜索存储有多个名称并用 ** 连接的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26759425/

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