PHP模糊查询怎么实现?

PHP模糊查询怎么实现?,第1张

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 将每个表的查询结果结合起来输出就行了吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9984323.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存