gpt4 book ai didi

php - 需要有关 mysql 查询的帮助,以根据请求使用不同的可能组合搜索所有列

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

我目前正在开发一个 php 项目,其中我坚持使用 mysql 查询来搜索搜索结果中请求的所有可能变化。

这是我的数据库列示例:

column 1: title
column 2: description
column 3: category
column 4: subcategory
column 5: city
column 6: state
column 7: type

我想要这样的结果:搜索标题或描述 + 状态 + 类别 + 类型中的关键字匹配

标题或描述 + 状态 + 子类别 + 类型中的搜索关键字匹配

标题或说明+城市+类别+类型中的搜索关键字匹配

标题或说明 + 城市 + 子类别 + 类型中的搜索关键字匹配

在标题或说明 + 类型中搜索关键字匹配

在标题或说明 + 状态中搜索关键字匹配

在标题或说明 + 城市中搜索关键字匹配

搜索标题或描述中的关键字匹配

状态

城市

类型

类别

或者我们从搜索查询中获得的任何可能的内容。

搜索包含以下选项:

关键词搜索(可选)+州选择(可选)+城市选择(可选)+类别选择(可选)+子类别选择(可选)+类型选择(可选)

这样我们就可以搜索任何关键字或状态,而无需关键字或任何我们需要的东西。

最佳答案

根据用户的选择添加 AND 条件,在 PHP 中构建查询。 PDO 示例(无需框架):

$pdo = new PDO($dsn, $user, $pass, $opt);

// get this data from user inputs
$search_keyword = 'bla';
$conditions = [
"category" => 'cat',
"subcategory" => 'sale',
"city" => 'auburn',
"state" => 'NY',
"type" => 'offer',
];


$sql = "SELECT * from data_table WHERE (title = :search OR description = :search)";

$binds = ['search' => $search_keyword];
foreach($conditions as $col => $val){
$conditions[] = $col . ' = :' . $col;
$binds[$col] = $val;
}

if ($conditions) {
$sql .= " AND " . implode(" AND ", $conditions);
}

$stmt = $pdo->prepare($sql);
$stmt->execute($binds);
$data = $stmt->fetchAll();

关于php - 需要有关 mysql 查询的帮助,以根据请求使用不同的可能组合搜索所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38260806/

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