php - 在多个表中使用关键字进行搜索?

标签 php mysql phpmyadmin cpanel

我正在尝试设置搜索栏,以便在搜索两个表时创建一个结果表。

每个表(新鲜、盐)有 2 列(ID 和说明)。

if(isset($_REQUEST["term"])){
// Prepare a select statement
$term = $_REQUEST['term'];

     $sql = "SELECT * FROM fresh  WHERE 
     description LIKE '%{$term}%' or 
     sku like '%{$term}%'
     union
     SELECT * FROM marine WHERE 
     description LIKE '%{$term}%' or 
     sku like '%{$term}%'";

        if($stmt = mysqli_prepare($link, $sql)){
        // Bind variables to the prepared statement as parameters
        mysqli_stmt_bind_param($stmt, "s", $param_term);

        // Set parameters
        $param_term = $_REQUEST["term"] . '%';

搜索的术语可以是“Neon Tetra”之类的任何内容,但搜索当前按原样查找该字符串,我希望它以空格分隔的两个以上不同关键字进行搜索,即使术语是向后的,例如“四 NEON ”。

最佳答案

与两个表相关的哪个 id 使用那个。我只是给出示例。不知道哪个表有主键或辅助键。试试这个:

$this->db->join('fresh', 'fresh.id = salt.freshid')
                ->select('fresh.*,salt.id');

//您可以使用 salt.id、salt.name 等从盐表中的所有字段

$where = '';
    if ($this->input->post('search')['value'] && $this->input->post('search')['value'] != '') {
        $where = "(fresh.sku LIKE '%" . $this->input->post('search')['value'] . "%' OR saly.sku LIKE '%" . $this->input->post('search')['value']. "%')";
    }
    if ($where != '') {
        $this->db->where($where);
    }
    $count = $this->db->get('salt')->num_rows();
    if ($this->input->post('length') != '-1') {
        $this->db->limit($this->input->post('length'), $this->input->post('start'));
    }
    $query = $this->db->get('salt')->result_array();
    return [$query, $count];

关于php - 在多个表中使用关键字进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54527599/

相关文章:

linux - Puppy Linux 中的 PHPMyAdmin 禁止 403

PHP AJAX POST 发送多个变量

javascript - 如何通过添加按钮动态添加选择框,然后通过php将值保存在mysql中

php - 如何用ajax提交文件上传表单?

php - 在 mySQL 查询中使用 MAX() 会产生有问题的结果

mysql查询失败,但没有清理磁盘空间

php - 使用环境变量覆盖核心 Magento DB 连接

java - 仅使用 Java 从数据库填充微调器?

php - 连接 phpmyadmin 到远程数据库

php - 根据用户输入循环将数据附加到sql数据库