大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
function get_category($id){
成都创新互联-专业网站定制、快速模板网站建设、高性价比盐山网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式盐山网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖盐山地区。费用合理售后完善,10余年实体公司更值得信赖。
$str=array();
//$sql = "select * from biao where id=$id";查询节点,自己写吧
$result = array('id'=,'parent_id'=);//查询结果一个数组格式
if($result){
$str = get_category($result['parent_id']);
$str[]=$result;
}
return $str;
}
}
调用get_category()就行了,$str第一个元素是节点本身,去掉就行了。
百万级的数据库表,好像也不用这么麻烦吧?
直接写一个php,递归执行就差不多了,但是php.ini中,将memory_limit设置大一些,再将mysql.connect_timeout值加大些,max_execution_time设置的值大一些。
如果不想设置这些,在程序中使用 ini_set() 函数也是可以的,一开始先递归小一些做十几条,测试通过了再递归所有数据,然后等就行了。
在等待的过程中,你可以用phpmyadmin等工具查看实时进度,如果发现问题,重启web服务器进程,就中止运行了,然后再试。
循环递归 function user_($fid){ str="select * from user_table where uid='$fid' "//SQL语句 $db=pg_query($str);//查询 while($row=pg_fetch_array($db))//循环 { $str.=user_($row['id']).',';//递归 }}没测试 大体的思路就这样 试试看
理论上作用域因素应该是没有的。看下这个数组别的地方有没有全局定义过