我想问的是discuz怎么来写一个嵌套的循环呀。打个比方吧:陕西 分为:西安市,榆林市,汉中市,渭南市。江西 分为:南昌市,上饶市,赣州市,新余市。
程序先查出 陕西或者江西,然后根据这个条件在查出各个市区。大侠们我的程序应该怎么写呀。给小弟一个思路吧,最好写一下简单的程序哦。小弟在这里先谢谢啦有位大侠之前提示过:我可以把代码写出来,希望指点哦
$big_category=mysql_query(select * from table_a where 大类);
foreach($big_category as $key=>$val) {
  $small_category[$key]=mysql_query(select * from table_b where $val);
}
/*
大概是这样子实现了。
先找出大类的,再根据大类搜小类。也可以利用一个sql递归实现了。但这样复杂。*/

解决方案 »

  1.   

    <?php
    //数据库表  zone,字段zone_id 区域序号,zone_pid 父区域序号,zone_name 区域名称
    //假设两层区域,一级区域的父节点序号为-1,二级的为其父节点序号
    //直接使用数组模拟从数据库中查询
    $data[] = array('zone_id' => 1,'zone_pid' =>  -1,'zone_name' =>   '山东');
    $data[] = array('zone_id' => 2,'zone_pid' =>  -1,'zone_name' => '山西');
    $data[] = array('zone_id' => 3,'zone_pid' =>  -1,'zone_name' => '河南');
    $data[] = array('zone_id' => 4,'zone_pid' =>  -1,'zone_name' => '河北');
    $data[] = array('zone_id' => 5,'zone_pid' =>  1,'zone_name' => '东营');
    $data[] = array('zone_id' => 6,'zone_pid' =>  1,'zone_name' => '济南');
    $data[] = array('zone_id' => 7,'zone_pid' =>  1,'zone_name' => '青岛');
    $data[] = array('zone_id' => 8,'zone_pid' =>  1,'zone_name' => '聊城');
    $data[] = array('zone_id' => 9,'zone_pid' =>  1,'zone_name' => '威海');$list = array();
    foreach ($data as $zone)
    {
        if ($zone['zone_pid'] == -1)
        {
            $list[$zone['zone_id']]['zone_id'] = $zone['zone_id'];
            $list[$zone['zone_id']]['zone_name'] = $zone['zone_name'];
        }
        else
        {
            $list[$zone['zone_pid']]['child'][] = $zone;
        }
    }print_r($list);
    ?>
      

  2.   

    ---------- php调试 ----------
    Array
    (
        [1] => Array
            (
                [zone_id] => 1
                [zone_name] => 山东
                [child] => Array
                    (
                        [0] => Array
                            (
                                [zone_id] => 5
                                [zone_pid] => 1
                                [zone_name] => 东营
                            )                    [1] => Array
                            (
                                [zone_id] => 6
                                [zone_pid] => 1
                                [zone_name] => 济南
                            )                    [2] => Array
                            (
                                [zone_id] => 7
                                [zone_pid] => 1
                                [zone_name] => 青岛
                            )                    [3] => Array
                            (
                                [zone_id] => 8
                                [zone_pid] => 1
                                [zone_name] => 聊城
                            )                    [4] => Array
                            (
                                [zone_id] => 9
                                [zone_pid] => 1
                                [zone_name] => 威海
                            )                )        )    [2] => Array
            (
                [zone_id] => 2
                [zone_name] => 山西
            )    [3] => Array
            (
                [zone_id] => 3
                [zone_name] => 河南
            )    [4] => Array
            (
                [zone_id] => 4
                [zone_name] => 河北
            ))