PHP ODBC SQL JOIN - PullRequest
       2

PHP ODBC SQL JOIN

1 голос
/ 29 июля 2011

Недавно одна компания попросила меня соединить несколько баз данных, которые у них есть, с некоторым PHP.Хотя большинство их новых баз данных - MySQL, у них есть база данных PROGRESS.Все шло хорошо, пока я не столкнулся с небольшой ошибкой.

Код работает отлично, за исключением того, что j.JobNum возвращает следующую ошибку:

Field j.JobNum not found in LOCATION

Если я удаляю последний JOIN, он работает нормально,То же самое происходит для любых перекрывающихся полей.Если строки перекрываются, они не могут быть выведены.

$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);

Есть ли решение для этого?Что-то не так с моим кодом?

1 Ответ

0 голосов
/ 29 июля 2011

Попробуйте сделать это

$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";
...