1.请注意php中的变量,始终以 $ 开头,你有好几处都没写正确
2.你连接和查询用的mysqli,获取行用了mysql_fetch_row,这是不对应的,而且 mysql_fetch_row是函数,你只写了个名字,是调用错误
3.根据报错页面,你连接mysql的用户名和密码是错误的,可能你没弄清楚用法随便填的吧
$connect = mysqli_connect('localhost','mysql用户名,开发用的一般是root',
'用户名对应的密码',
'要连接的数据库')
4.mysqli库不同于mysql库,mysql连接上之后,使用查询或其它函数,会自动调用之前的连接资源,mysqli需要手动传入连接对象
mysql_query(' SELECT * FROM text_table limit 10 ')mysqli_query($connect, ' SELECT * FROM text_table limit 10 ')
5.如果需要判断有查询关键字才搜索,那就把if放在外面,不然你这里没关键字,数据库查询 *** 作都会执行,只不过没获取结果集而已
if(!empty($keyword)){$conn = mysqli_connect( ... )
if (mysqli_connect_errno()) {
printf("连接失败: %s\n", mysqli_connect_error())
exit()
}
$keyword = addslashes($keyword)
$sql = "SELECT * FROM user where username LIKE '%$keyword%'"
$result = mysqli_query($conn,$sql)
$user = array()
while ($row = mysqli_fetch_assoc($result))
{
$user[]=$row
}
mysqli_free_result($result)
mysqli_close($conn)
}
mysql支持自然语言的全文搜索对于字段的要求:
只能是CHAR, VARCHAR, 或 TEXT 类型的字段
表类型是MyISAM
在表建好,并导入数据后,建立一个fulltext index(索引)
用法:
select 字段1,字段2,字段3, MATCH(要匹配的字段名) AGAINST('keyword') as score from table having score>0
命中的每一行都会有个分数,分数越大表示结果越接近keyword,分数越低的就是越模糊的结果
你这问题写的太泛泛了,直接用 chushou 举例吧, SELECT * FROM chushou WHERE 列名 LIKE '%用户输入内容%' ;最后用php 将每个表的查询结果结合起来输出就行了吧欢迎分享,转载请注明来源:内存溢出
评论列表(0条)