php - MySQL 返回行,其中列包含由数组定义的类别(并为结果添加权重)

标签 php jquery mysql arrays categories

在我的应用程序中,用户可以输入无限数量的类别进行搜索。用户点击提交后,我将使用 AJAX 调用 PHP 脚本来查询数据库并返回与用户为类别定义的结果相匹配的结果。

我的类别列按每行分隔:“蓝色、红色、黄色、绿色”等。

我有两个问题:

  1. 如何将数组传递给 MySQL(例如:[blue,yellow,green]),然后在类别列中搜索每个术语?如果至少找到一个类别,则应返回该行。
  2. 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/

相关文章:

javascript - 将 HTML 代码添加到选择输入选项值中的解决方法

mysql - Rails ActiveRecord - 选择评论最多的用户

php - MySQL 用 PHP 插入

清理所有数据的 PHP 函数

javascript - 将特定文本保存在单独的 div 中,加载随机图像

javascript - 弹跳球 5 次 jquery/javascript 初学者水平

php 和 ruby​​ 脚本访问相同的数据库和表会导致损坏吗?

php - Symfony 1.4 Doctrine fixtures加载单个文件?

php - 如何在mpdf中添加css文件

php - 谷歌登录 API : force to type password?