2011-07-29 3 views
1

최근 한 회사에서 PHP로 가지고있는 여러 데이터베이스를 연결하라는 요청을 받았습니다. 새 데이터베이스의 대부분은 MySQL이지만 진행 데이터베이스는 하나입니다. 내가 약간의 실수를 범하기 전까지는 모든 것이 잘 풀렸다.PHP ODBC SQL JOIN

코드는 j.JobNum 다음과 같은 오류를 반환하는 것을 제외하고 큰 실행 :

Field j.JobNum not found in LOCATION 

내가 마지막을 제거하면

는 잘 작동 가입. 겹치는 모든 필드에서도 마찬가지입니다. 행이 겹치면 출력 될 수 없습니다.

$table_name = "Customer"; 
$fields = 'j.JobNum, Name, City, State, Zip'; 

$conn = odbc_connect($dsn, $username, $password, SQL_CUR_USE_ODBC); 

$field_array = explode(', ', $fields); 

$sql = "SELECT TOP 50 ".$fields." FROM PUB.JobProd j LEFT JOIN PUB.BookOrd b ON j.OrderNum=b.OrderNum LEFT JOIN PUB.Customer c ON b.CustNum=c.CustNum LEFT JOIN PUB.JobHead jh ON j.JobNum=jh.JobNum"; 
    echo '<table>'; 
    echo '<tr><td>JobNum</td><td>Name</td><td>City</td><td>State</td><td>Zip</td></tr>'; 
    $rs = odbc_exec($conn,$sql) or die('Select failed!'); 
     while(odbc_fetch_row($rs)){ 
      echo '<tr>'; 
      foreach($field_array as $key=>$field){ 
       echo "<td>".odbc_result($rs, $field)."</td>"; 
      } 
      echo '</tr>'; 
     } 
    echo '</table>';  
odbc_close($conn); 

이 해결 방법이 있습니까? 내 코드에 문제가 있습니까?

답변

0

봅니다이

$sql = "SELECT TOP 50 ".$fields." FROM PUB.JobProd AS j LEFT JOIN PUB.BookOrd AS b 
ON j.OrderNum=b.OrderNum LEFT JOIN PUB.Customer AS c 
ON b.CustNum=c.CustNum LEFT JOIN PUB.JobHead AS jh 
ON j.JobNum=jh.JobNum"; 
해야 할 일