【发布时间】: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