的时候,用ajax去查询下一层的信息,如果感觉慢的
话可以给表做索引,也可以做分表处理,几十万不是
太大的数据
第一,没有选择数据库,在连接数据库后添加mysql_select_db("数据库名");
第第二段:我感觉不代码不全吧,因为我拷下来看了一下,少一},当然上面那个没少,补充的少了.
第第三段:还有没看出这个$ii是干什么用的.
第第四段:没感觉$selec=0与不等于0输出有什么不同.
第第五段:以后最好是把html代码与程序分开写.
因为不知道需求,只能根据你的程序简单修改如下:
php
function TreeMenu($selec) {
mysql_select_db("数据库名");
$ii=1;
$sql="select * from tvmenu where bid=".$selec;
$result=mysql_query($sql,$Conn);
$str = "";
while($row =mysql_fetch_array($result)) {
if($selec=0) {
$str = 'option value="'.$row['id'].'"'.$row['name'].'/option ';
}else {
}
echo $str;
$ii++;
TreeMenu($row['id']);
$ii--;
select name="bid" id="bid"
TreeMenu(0);
/select
function get_category($id){
$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第一个元素是节点本身,去掉就行了.
循环递归 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']).',';//递归 }}没测试 大体的思路就这样 试试看
你的代码没看明白,因为数据库可以索引,不明白数据库查询为什么还要二分查找,数据库的HASH是最快速的搜索,那我就直接回答:可以把$conn放在变量里面递归,只要不是在递归函数里面再次mysql_connect就不会造成许多连接,至少浪费一点点堆栈空间(内存).
其次纠正一下:PHP支持全局变量,需要使用global进行申明,例如:
$a=1;
f();
echo $a;
function f(){
global $a;
$a++;
最后给你说个轻松的,mysql的连接符$conn,其实在所有的mysql函数里面是可以省略的,如果你只有一个连接,这个参数完全可以不用,例如:
mysql_close();
$sql='select ....';
$res=mysql_query($sql);//可以正常执行
$row=mysql_fetch_array($res);
mysql_free_result($res);
要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的!
以上就是土嘎嘎小编为大家整理的php递归数据库相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!