【发布时间】: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错误需要检查。发布
<span class="user_name">'.str_ireplace($search_keyword,$bold_search_keyword,$rowUsers['FULLNAME']).'</span>的完整代码
标签: php mysql autocomplete