【问题标题】:php ajax creating a search box like googlephp ajax 创建一个像谷歌这样的搜索框
【发布时间】:2014-08-26 17:59:03
【问题描述】:

我想创建一个搜索框,类似于 Google 搜索框。

我的数据库中有一个存储搜索文本的表。

---------------------------
| searchdata     | output |
---------------------------
| id             | id=-1  |
| Data for id 1  | id=1   |
| data for 2     | id=2   |
| datatx id 2    | id=4   |
| datacv for id  | id=5   |
---------------------------

现在在我的 php 文件中

<?php

        if ($con = mysqli_connect("localhost","root","root","search")) {


          $chatData1 = $_POST['request'];


$textm= str_replace(" ", "%' or searchdata like '%", $chatData1);


          if (mysqli_connect_errno())
           {
               echo "Failed to connect to MySQL: " . mysqli_connect_error();
             }

$result = mysqli_query($con,"SELECT * FROM  search  where searchdata like '%{$textm}%' ");

if($row = mysqli_fetch_array($result))
  {
 echo $row['output'];


}
 else{
echo "Please use English(US) Language.";

}


}
mysqli_close($con);

?>

例如如果用户输入data for id,则sql查询必须是这样的

SELECT * 
FROM search  
WHERE searchdata LIKE '%data%' OR 
      searchdata LIKE '%for%' OR 
      searchdata LIKE '%id%'`

所以它必须给出输出acc。到表id=1,但它给了我输出id=-1

【问题讨论】:

  • 尝试阅读MATCH()...AGAINST()

标签: php mysql sql ajax database


【解决方案1】:

您可以使用jQuery Ui Autocomplete 解决此问题,只需指定字段并使用 JSON 显示您的数据

$data = array()
if($row = mysqli_fetch_array($result))
{
  data[] = $row['output'];
}
// Outputs JSON
print json_encode($data);

【讨论】:

  • 我想打印匹配最大值的数据
  • 检查“远程数据源”示例,有你的解决方案。
猜你喜欢
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-22
  • 2011-06-28
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多