重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先需要写出模糊查询的sql语句,连接数据库把需要的数据匹配出来,然后使用循环把iD字段单独拿出来就可以了
创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目做网站、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元会同做网站,已为上家服务,为会同各地企业和个人服务,联系电话:028-86922220
具体分析一下啊,简单的模糊查询只要查询数据库的时候利用like就可以实现,但是真的模糊查询,就需要对用户输入的字段进行拆解,匹配然后计算出符合率为多少然后输出
具体的错误信息是什么呢?光这样这样有些难查找
PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。
PHP 是免费的,并且使用广泛。对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。
PHP 是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。
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 score0
命中的每一行都会有个分数,分数越大表示结果越接近keyword,分数越低的就是越模糊的结果
select * from t_store where address like '%人%' and address like '%才%';
你这样试试,只要包含人才两个字的都能查询出来,[不过这样有一个缺点,就是'才'、'人'也会被查到,这个再处理一下就可以了]