2013-03-19 6 views
1

데이터를 올바르게 포맷하는 데 문제가 있습니다. 모든정렬 된 데이터 표시

먼저, 내 PHP 코드는 다음과 같습니다 (데모 JSFiddle 참조) :

$result_rules = $db->query("SELECT rules.source_id, rules.destination_id, dest.project AS dest_project, src.project AS src_project, src.pk_id AS src_id, excep.project AS excep_project, excep.feature AS excep_feature, excep.milestone AS excep_milestone 
    FROM dbo.FFC_Rules rules 
    INNER JOIN dbo.Destination dest 
     ON dest.pk_id=rules.destination_id 
    LEFT JOIN dbo.Source src 
     ON src.pk_id=rules.source_id 
    LEFT JOIN dbo.Exceptions excep 
     ON src.pk_id=excep.source_id 
    ORDER BY dest.project ASC"); 

$last_src = false; 
$last_dest = false; 
while($row = sqlsrv_fetch_array($result_rules)){ 
    if ($row['dest_project'] !== $last_dest) { 
     if ($last_dest !== false) 
      echo "</div>"; 
     $last_dest = $row['dest_project']; 
     echo "<div class='projectscontainer'>"; 
     echo "<div id='arrow' class='arrow-right'></div>"; 
     echo "<span class='item destproject unselectable' title='ID: $row[destination_id]'>$row[dest_project]</span>"; 
     echo "<br>"; 
    } 

    echo  "<div class='srcprojects'>"; 
    if (is_null($row['src_id'])) { 
     echo  " Source ID for Destination ID $row[destination_id] is NULL"; 
    } else { 
     if($row['src_project'] !== $last_src) { 
      $last_src = $row['src_project']; 
      echo "<span class='item srcproject' title='ID: $row[src_id]'>$row[src_project]</span>"; 
      if (!is_null($row['excep_feature'])) 
       echo"<div id='arrow' class='arrow-right'></div><span class='item srcproject exception' title='Feature'>$row[excep_feature]</span>"; 
      if (!is_null($row['excep_milestone'])) 
       echo"<div id='arrow' class='arrow-right'></div><span class='item srcproject exception' title='Milestone'>$row[excep_milestone]</span>"; 
      echo "<br>"; 
     } 
    } 
    echo  "</div>";//end srcprojects 
} 
echo  "</div>";//end projectscontainer 

을 내 쿼리에서 나는 대상 프로젝트에 의해 주문, 내 PHP 코드에서 나는 현재의 최종 도착이 있는지 확인 마지막 것과 동일합니다. 그렇다면 이름을 표시하지 않습니다. 소스 프로젝트에서도 동일한 작업을 수행하려고하지만 쿼리가 대상 프로젝트에 의해 정렬되기 때문에 반복은 다른 위치에서 발생하며 PHP 코드에 의해 포착되지 않습니다.

쿼리에서 반환 한 40,000 개 이상의 행을 모두 다시 가져 오지 않고 어떻게이 작업을 수행 할 수 있습니까? dest.project의 ASC BY

ORDER, src.project ASC

그리고 당신은 쿼리에서 원하는 얼마나 많은 행이 상태로 LIMIT 절을 사용

답변

0

당신은에서와 다른 내에서 하나를 정렬 할 수 있습니다.

관련 문제