php+数据查询实例 php查询数据库数据

刚学php的小白,问一下这个查询该怎么写

思路:

成都创新互联是一家专注于成都网站建设、做网站与策划设计,邵武网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:邵武等地区。邵武做网站价格咨询:13518219792

先查出上述的二维数据,然后遍历查出的二维数组,根据每条的成员id查询出user_name,添加到查询出的二维数组中,最后在渲染输出

示例:

//获取数据库实例

$dsn = 'mysql:dbname=test;host=127.0.0.1';

$user = 'root';

$password = '';

try {

$db = new PDO($dsn, $user, $password,array(PDO::MYSQL_ATTR_INIT_COMMAND = "set names utf8"));

} catch (PDOException $e) {

echo 'Connection failed: ' . $e-getMessage();

}

//得到的二维数组

$data=[

[

'id'='1',

'range'='所在部门以及下级部门',

'功能项'='72',

],

[

'id'='1',

'range'='所在部门以及下级部门',

'功能项'='78,72',

],

[

'id'='10,7',

'range'='所在部门以及下级部门',

'功能项'='72,82',

],

];

//遍历

foreach($data as $item){

$sth = $db-query('select user_name from user where member_id in ('.$item['id'].')');

$user = $sth-fetchAll(PDO::FETCH_ASSOC);

$sth-debugDumpParams();

$item['member_name'] = implode(',',array_column($user,'user_name'));

}

unset($item);

var_dump($data);

输出

array(3) {

[0]=

array(4) {

["id"]=

string(1) "1"

["range"]=

string(30) "所在部门以及下级部门"

["功能项"]=

string(2) "72"

["member_name"]=

string(6) "李明"

}

[1]=

array(4) {

["id"]=

string(1) "1"

["range"]=

string(30) "所在部门以及下级部门"

["功能项"]=

string(5) "78,72"

["member_name"]=

string(6) "李明"

}

[2]=

array(4) {

["id"]=

string(4) "10,7"

["range"]=

string(30) "所在部门以及下级部门"

["功能项"]=

string(5) "72,82"

["member_name"]=

string(13) "刘海,达明"

}

}

thinkphp 数据库查询怎么查?

thinkphp如何查询数据库?

数据库查询

ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作。

查询条件可以用于CURD等任何操作,作为where方法的参数传入即可。

ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全。

查询方式

一、使用字符串作为查询条件

这是最传统的方式,但是安全性不高,例如:

1

2

$User = M("User"); // 实例化User对象

$User-where('type=1 AND status=1')-select();

最后生成的SQL语句是

1

SELECT * FROM think_user WHERE type=1 AND status=1

二、使用数组作为查询条件

1

2

3

4

5

$User = M("User"); // 实例化User对象

$condition['name'] = 'thinkphp';

$condition['status'] = 1;

// 把查询条件传入查询方法

$User-where($condition)-select();

最后生成的SQL语句是

1

SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1

如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑:

1

2

3

4

5

6

$User = M("User"); // 实例化User对象

$condition['name'] = 'thinkphp';

$condition['account'] = 'thinkphp';

$condition['_logic'] = 'OR'; //定义查询逻辑

// 把查询条件传入查询方法

$User-where($condition)-select();

最后生成的SQL语句是

1

SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'

三、使用对象方式来查询 (这里以stdClass内置对象为例)

1

2

3

4

5

6

$User = M("User"); // 实例化User对象

// 定义查询条件

$condition = new stdClass();

$condition-name = 'thinkphp';

$condition-status= 1;

$User-where($condition)-select();

最后生成的SQL语句和上面一样

1

SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1

使用对象方式查询和使用数组查询的效果是相同的,并且是可以互换的,大多数情况下,我们建议采用数组方式更加高效,后面我们会以数组方式为例来讲解具体的查询语言用法。

表达式查询

上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,并且可以用于数组或者对象方式的查询(下面仅以数组方式为例说明),查询表达式的使用格式:

1

$map['字段名'] = array('表达式','查询条件');

表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:

1

2

3

4

$map['id']  = array('eq',100);  id = 100;

$map['id']  = array('egt',100);id = 100

$map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查询

$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')

本文来自ThinkPHP框架技术文章栏目:

以上就是thinkphp如何查询数据库的详细内容,更多请关注php中文网其它相关文章!

用PHP代码如何查询数据库表中的一条记录

你的意思是说

点击查询后

要吧与关键字相关联的整条记录都显示出来?

那样的话

你要先把这条记录复制

给某个数组,然后输出这个数组就可以了

$sql="select

*

from

db1

where

name=$_post[name]";

$result=mysql_query($sql,$con);

$row=mysql_fetch_array($result)

echo

$row[name];

echo

$row[age];

……


网站标题:php+数据查询实例 php查询数据库数据
本文链接:http://ybzwz.com/article/ddeigjh.html