重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一般插入一条数据都会返回这条数据的id的,你可以直接定义个变量来存储就行了
成都创新互联公司是一家专业从事网站设计制作、成都做网站、网页设计的品牌网络公司。如今是成都地区具影响力的网站设计公司,作为专业的成都网站建设公司,成都创新互联公司依托强大的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、营销型网站建设及网站设计开发服务!
$map 是数组
$id = D('User')-add($map);
这个$id 就是这条数据插入的id
?php
$arr = '[{"id":1,"gid":0,"title":"小红"},{"id":2,"gid":0,"title":"小明"},{"id":3,"gid":0,"title":"小蓝"},{"id":4,"gid":0,"title":"小白"},{"id":5,"gid":7,"title":"小嘿"},{"id":6,"gid":8,"title":"小网"},{"id":7,"gid":9,"title":"小王"},{"id":8,"gid":4,"title":"小2"},{"id":9,"gid":3,"title":"小3"},{"id":10,"gid":2,"title":"小8"},{"id":11,"gid":2,"title":"小7"},{"id":12,"gid":7,"title":"小7"}]';
$arr_list = json_decode($arr,1);
$id_pid = null;
$list = null;
foreach($arr_list as $key = $val){
$id_pid[$val['id']] = $val['gid'];
$list[$val['id']] = $val;
}
function getChild($id,$id_pid,$child=array()){
if(count($child)==0) $child[] = $id;
$res = array_keys($id_pid,$id);
if(count($res)0){
$child = array_merge($child,$res);
foreach($res as $val){
$child = getChild($val,$id_pid,$child);
}
}
return $child;
}
$id = 3;
echo 'pre';
print_r (getChild($id,$id_pid));
echo '/pre';
exit();
结果:
你直接执行这么多条插入语句,那么这个函数是只能返回一个值,不过如果你换一个思路就可以了。
你可以把四个sql拆开,用for或者foreach循环插入数据库,那么每一次返回的id就是你想要的结果了。
参考例子:
$arr = array(array('10','1','张三'),array('11','1','李四'));
$arr_id = array();
foreach($arr as $k=$v)
{
$sql = 'insert into 表名('年龄','性别','姓名') values('$v[0]','$v[1]','$v[2]')';
mysql_query($sql);
$arr_id[] = msyql_insert_id();//将每次返回的id保存进数组
}
大致是这样的想法,代码不保证对,只是思路。