【问题标题】:Autocomplete Join 2 Columns MySQL & PHP自动完成加入 2 列 MySQL 和 PHP
【发布时间】:2015-06-04 22:33:23
【问题描述】:

我有一个通过从表中提取名字来工作的自动完成表单。但是我想使用 2 个字段自动完成。这两个字段是 NAME 和 LAST_NAME,它们是数据库中的 2 个独立字段。这是我的搜索代码:

<?php
include('db_connection.php');
if(isset($_POST['search_keyword']))
{
    $search_keyword = $dbConnection->real_escape_string($_POST['search_keyword']);
    $sqlUsers="SELECT ID, NAME, LAST_NAME FROM b_user WHERE NAME LIKE '%$search_keyword%'";
    $resUsers=$dbConnection->query($sqlUsers);

    if($resUsers === false) {
        trigger_error('Error: ' . $dbConnection->error, E_USER_ERROR);
    }else{
        $rows_returned = $resUsers->num_rows;
    }

$bold_search_keyword = '<strong>'.$search_keyword.'</strong>';
if($rows_returned > 0){
        while($rowUsers = $resUsers->fetch_assoc()) 
        { 
            echo '<div class="show" align="left"><span class="user_name">'.str_ireplace($search_keyword,$bold_search_keyword,$rowUsers['NAME']).'</span></div>'; 
        }
    }else{
        echo '<div class="show" align="left">No matching records.</div>'; 
    }
} 
?>

上面的代码可以很好地返回下拉列表中的名字,但我需要它来搜索 NAME,然后继续查找 LAST_NAME。有没有办法加入 NAME 和 LAST_NAME。我试过这个:

 $sqlUsers="SELECT ID, CONCAT(NAME, ' ', LAST_NAME) AS FULLNAME FROM b_user WHERE FULLNAME LIKE '%$search_keyword%'";

然后显示:

 <span class="user_name">'.str_ireplace($search_keyword,$bold_search_keyword,$rowUsers['FULLNAME']).'</span>

但这似乎完全破坏了搜索。我觉得我离上述不远了,但还不是快乐。我们将不胜感激。

【问题讨论】:

  • 您是否遇到任何错误
  • 在控制台中,我只是在与此文件相关的 POST 上收到内部服务器错误。
  • 那么你的代码中有一个PHP错误需要检查。发布&lt;span class="user_name"&gt;'.str_ireplace($search_keyword,$bold_search_keyword,$rowUsers['FULLNAME']).'&lt;/span&gt; 的完整代码

标签: php mysql autocomplete


【解决方案1】:

您可以在查询中将您的 NAME 和 LAST_NAME 分开,这样您就可以更好地控制如何输出自动完成的结果。您只需要更改查询的 WHERE 子句,也可以查找姓氏的匹配项。我认为自动完成通常非常松散匹配,这可能有效。

SELECT ID, NAME, LAST_NAME FROM b_user WHERE NAME LIKE '%$search_keyword%' OR LAST_NAME LIKE '%$search_keyword%'

【讨论】:

    猜你喜欢
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多