从3个表格制作数组

时间:2014-02-04 16:48:11

标签: php mysql arrays multidimensional-array

我有3张桌子

  1. service - contains(service_id,service_name)
  2. service_req - 包含(service_req_id,requirement)
  3. service_default_req - 包含(service_id,service_req_id,required)此表将服务链接到service_req
  4. 这个过程是

    • 首先从services表中获取服务列表;然后
    • 检查这些服务是否具有基于service_default_req
    • 的指定默认要求

    示例services

    service_id ===== service_name
        1              ticket
        2              tours
    

    示例service_req

    service_req_id======requirement
          1           NSO birth cert
          2            OLD passport
    

    service_default_req

    链接起来的表格
    id====service_id=====service_req_id=====required
     1        1                1                0
     2        1                2                0
    

    我使用的功能

    function listServices(){
    $services= array();
    $sql = mysql_query("SELECT * FROM service 
    LEFT JOIN service_default_req ON service_default_req.service_id = service.service_id
    LEFT JOIN service_req ON service_req.service_req_id = service_default_req.service_req_id    
    ");
    while($temp=mysql_fetch_array($sql)){
        $services[] = array("service_id" => $temp['service_id'], "service_name"=>$temp['service_name'], "requirements"=>array($temp['requirement']), "required"=>$temp['required']);
    }
    return $services;
    }
    

    我得到了什么

    Array
    (
    [0] => Array
        (
            [service_id] => 2
            [service_name] => Passport
            [requirements] => Array
                (
                    [0] => NSO Birth Certificate
                )
    
            [required] => 0
        )
    
    [1] => Array
        (
            [service_id] => 2
            [service_name] => Passport
            [requirements] => Array
                (
                    [0] => Old Passport
                )
    
            [required] => 0
        )
    
    [2] => Array
        (
            [service_id] => 
            [service_name] => Tours
            [requirements] => Array
                (
                    [0] => 
                )
    
            [required] => 
        )
    )
    

    我真正需要的是这样的事情。还请注意,为什么第二项服务没有ID?

    Array
    (
    [0] => Array
        (
            [service_id] => 2
            [service_name] => Passport
            [requirements] => Array
                (
                    [0] => NSO Birth Certificate
                    [1] => Old Passport
                )
    
            [required] => 0
        )
    
    [1] => Array
        (
            [service_id] => 
            [service_name] => Tours
            [requirements] => Array
                (
                    [0] => 
                )
    
            [required] => 
        )
    )
    

    任何帮助都会受到高度赞赏:D

1 个答案:

答案 0 :(得分:0)

您需要实现一个类似于此处描述的接受答案的数组分组功能:Group a multidimensional array by a particular value?