在我的应用程序中,用户可以输入无限数量的类别进行搜索。用户点击提交后,我将使用 AJAX 调用 PHP 脚本来查询数据库并返回与用户为类别定义的结果相匹配的结果。
我的类别列按每行分隔:“蓝色、红色、黄色、绿色”等。
我有两个问题:
- 如何将数组传递给 MySQL(例如:[blue,yellow,green]),然后在类别列中搜索每个术语?如果至少找到一个类别,则应返回该行。
- MySQL 能否为具有更多用户输入类别的行添加权重,从而将其进一步置于返回结果的顶部?如果 MySQL 无法做到这一点,那么使用 PHP 做到这一点的最佳方法是什么?
感谢您花时间查看我的问题。
最佳答案
对于第 1 部分,您可以使用以下函数:
<?php
function createquery($dataarray){
$query="select * from table where ";
$loop=1;
foreach($dataarray as $data)
{
$query.="col='$data'";
if(count($dataarray)<$loop-1){
$query.=' or ';
}
$loop++;
}
return $query;
}
?>
这将返回长查询。
关于php - MySQL 返回行,其中列包含由数组定义的类别(并为结果添加权重),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37262275/