php模糊查询数据遍历,PHP模糊查询

php通过mysql like搜索关键词查询,所有符合数据遍历出来

?php

专注于为中小企业提供成都网站设计、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业鸡西梨树免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

$host="localhost";

$username="root";

$password="root";

$db="db4"; //库名

$mysql_table="person"; //表名

//连接数据库,面向过程

$conn=mysqli_connect($host,$username,$password);

if(!$conn){

echo "数据库连接失败";

exit;

}

//选择所要操作的数据库

mysqli_select_db($conn,$db);

//设置数据库编码格式

mysqli_query($conn,"SET NAMES UTF8");

//编写sql获取分页数据 SELECT * FROM 表名 LIMIT 起始位置,显示条数

//注意:以下id,name,age,say都是字段节点名,person是表名,db4是数据库名,think是指定的关键字.

$sql = 'SELECT id, name, age, say

FROM person

WHERE say LIKE "%think%" order by id ASC LIMIT '.($page-1)*$pageSize .",{$pageSize}";

// 节点名 关键字 节点名 可指定数量limit后可写一个指定的数字

//$sql="select * from $mysql_table"

//把sql语句传送到数据库

$result=mysqli_query($conn,$sql);

//将数据显示到table中,并未table设置格式

echo "div class='content'";

echo "table border=1 cellspacing=0 width=30% align=center";

echo "trtdID/tdtdNAME/tdtdsay/td/tr";

while ($row = mysqli_fetch_assoc($result)) {

echo "tr";

echo "td{$row['id']}/td";

echo "td{$row['name']}/td";

echo "td{$row['say']}/td";

echo "tr";

}

echo "/table";

echo "/div";

//释放结果

mysqli_free_result($result);

//关闭数据库

mysqli_close($conn);

PHP 怎么样遍历

第一、foreach()

foreach()是一个用来遍历数组中数据的最简单有效的方法。

?php

$urls= array('aaa','bbb','ccc','ddd');

foreach ($urls as $url){

echo "This Site url is $url! br /";

}

?

显示结果:

This Site url is aaa

This Site url is bbb

This Site url is ccc

This Site url is ddd

第二、while() 和 list(),each()配合使用。

?php

$urls= array('aaa','bbb','ccc','ddd');

while(list($key,$val)= each($urls)) {

echo "This Site url is $val.br /";

}

?

显示结果:

?

This Site url is aaa

This Site url is bbb

This Site url is ccc

This Site url is ddd

第三、for()运用for遍历数组

?php

$urls= array('aaa','bbb','ccc','ddd');

for ($i= 0;$i count($urls); $i++){

$str= $urls[$i];

echo "This Site url is $str.br /";

}

?

显示结果:

This Site url is aaa

This Site url is bbb

This Site url is ccc

This Site url is ddd

这几种遍历数组的方法哪个更快捷些呢,下面做个简单的测试就明白了

=========== 下面来测试三种遍历数组的速度 ===========

一般情况下,遍历一个数组有三种方法,for、while、foreach。其中最简单方便的是foreach。下面先让我们来测试一下共同遍历一个有50000个下标的一维数组所耗的时间。

?php

$arr= array();

for($i= 0; $i 50000; $i++){

$arr[]= $i*rand(1000,9999);

}

function GetRunTime()

{

list($usec,$sec)=explode(" ",microtime());

return ((float)$usec+(float)$sec);

}

######################################

$time_start= GetRunTime();

for($i= 0; $i count($arr); $i++){

$str= $arr[$i];

}

$time_end= GetRunTime();

$time_used= $time_end- $time_start;

echo 'Used time of for:'.round($time_used, 7).'(s)br /br /';

unset($str, $time_start, $time_end, $time_used);

######################################

$time_start= GetRunTime();

while(list($key, $val)= each($arr)){

$str= $val;

}

$time_end= GetRunTime();

$time_used= $time_end- $time_start;

echo 'Used time of while:'.round($time_used, 7).'(s)br /br /';

unset($str, $key, $val, $time_start, $time_end, $time_used);

######################################

$time_start= GetRunTime();

foreach($arr as$key= $val){

$str= $val;

}

$time_end= GetRunTime();

$time_used= $time_end- $time_start;

echo 'Used time of foreach:'.round($time_used, 7).'(s)br /br /';

?

测试结果:

Used time of for:0.0228429(s)

Used time of while:0.0544658(s)

Used time of foreach:0.0085628(s)

结果表明,对于遍历同样一个数组,foreach速度最快,最慢的则是while。从原理上来看,foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。原因应该是,foreach是PHP内部实现,而while是通用的循环结构。所以,在通常应用中foreach简单,而且效率高。在PHP5下,foreach还可以遍历类的属性。

希望能够喜欢。

php如何通过模糊查询数组元素获取ID值?

首先需要写出模糊查询的sql语句,连接数据库把需要的数据匹配出来,然后使用循环把iD字段单独拿出来就可以了

PHP遍历数组的几种方法

PHP中遍历数组有三种常用的方法:

一、使用for语句循环遍历数组;

二、使用foreach语句遍历数组;

三、联合使用list()、each()和while循环遍历数组。

这三种方法中效率最高的是使用foreach语句遍历数组。从PHP4开始就引入了foreach结构,是PHP中专门为遍历数组而设计的语句,推荐大家使用。

希望回答对你有帮助,如果有疑问,请继续追问

PHP如何实现模糊搜索?

mysql支持自然语言的全文搜索

对于字段的要求:

只能是CHAR, VARCHAR, 或 TEXT 类型的字段

表类型是MyISAM

在表建好,并导入数据后,建立一个fulltext index(索引)

用法:

select 字段1,字段2,字段3, MATCH(要匹配的字段名) AGAINST('keyword') as score from table having score0

命中的每一行都会有个分数,分数越大表示结果越接近keyword,分数越低的就是越模糊的结果

PHP模糊查询怎么实现?

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);

}


网站栏目:php模糊查询数据遍历,PHP模糊查询
链接分享:http://pwwzsj.com/article/dscissp.html