2014-06-30 27 views
0

我有一张表,其中包含PRTL_BusRoute,它引用了各个区域的IDAreaID作为ID's区域进入每个区域。选择查询并选择多列,其中一列应该是不同的mssql

**ID** **BustrouteID** **AreaID** 

    0   1    3 
    1   1    5 
    1   1    6 
    2   2    5 
    3   2    6  
    4   2    8 
    5   3    9 
    6   3    12 
    7   4    1 
    8   4    8 
    9   4    11 

公交路线的名称都存储在tbl_BusRoute和地区都存储在dbo.GEN_Area。我需要像这样显示:

Zonename1 
    Areas coming under this zone in a list 

Zonename2 
    Areas coming under this zone in a list 
........ 

我的PHP代码是这样的:

$area = '';                
$getbus = mssql_query("SELECT BusRouteID,AreaID FROM dbo.Acc_BusRouteDetail"); 
     while($data_getbus = mssql_fetch_row($getbus)){ 
      $getZone = mssql_query("SELECT Busroute FROM PRTL_BusRoute 
      WHERE BusRouteID = '$data_getbus[0]'"); 
      while($data_getZone = mssql_fetch_row($getZone)){ 
        $zone_name = "<h4>".$data_getZone[0]."</h4>"; 
        } 
     $getArea = mssql_query("SELECT AreaName_1 FROM dbo.GEN_Area 
      WHERE AreaID = '$data_getbus[1]' ORDER BY AreaName_1"); 
     while($data_getArea = mssql_fetch_row($getArea)){ 
      $area .= $data_getArea[0]."</br>"; 
     } 
     echo $zone_name."<br/>".$area."<br/>"; 
    } 

输出如下:

ZoneName1 
     Areaname1 

    ZoneName1 
     AreaName1 
     AreaName2 

    ZoneName1 
     AreaName1 
     Areaname2 
     AreaName3 

    ZoneName2 
    Areaname1 

    ZoneName2 
    Areaname1 
    Areaname2 so on 

我想知道如果可能的话,我该如何选择不同的公交路线及其下的所有区域。我用尽逻辑如何选择单个路径ID,然后选择所有的区域下来

回答

1

我会稍微更改SQL查询一次获取所有数据,并循环和打印区域每次,如果从最后一行开始改变,则只是打印公交路线。像这样(未经测试)的代码;

$last_route = ''; 
$getbus = mssql_query("SELECT br.BusRoute,a.AreaName_1 FROM dbo.Acc_BusRouteDetail brd JOIN dbo.PRTL_BusRoute br ON br.busrouteid = brd.busrouteid JOIN dbo.GEN_Area a ON a.areaid = brd.areaid ORDER BY br.busroute, a.areaname_1"); 
while($data_getbus = mssql_fetch_array($getbus)){ 
    if($last_route != $data_getbus['BusRoute']) { 
     $last_route = $data_getbus['BusRoute']; 
     echo '<h4>'.$last_route.'</h4>'; 
    } 
    echo '<br/>'.$data_getbus['AreaName_1'].'</br>'; 
} 
+0

其不工作@Joachim Isaksson – Techy

+0

@Techy它有什么问题?如果您将'SQL'查询切换到管理工作室,是否会给出任何错误? –

+0

结果不显示。控制器没有进入while循环。我测试了sqlStudio中的sql查询,它显示了结果。在网页中没有显示结果 – Techy