2014-06-27 68 views
-1

我開始使用PHP和Oracle一起使用ODBC命令。我用odbc_exec來查詢數據庫,這似乎工作。PHP ODBC返回所有記錄

我想將數據集打印到文本文件。我可以寫入文本文件,但出於某種原因,我只能從表中取回1條記錄/行。

一個查詢特別返回超過100條記錄。我希望能夠在文本文件中打印所有100條記錄。

我已經在網絡上研究過了,而且我已經接近完成這項工作。實際上,我可以將所有記錄打印到網頁上。我無法將所有記錄都存入文本文件。

請參閱下面的代碼,並告訴我缺少什麼。

<?php 
    $voyage = $_POST['voyage']; 
    $query = "SELECT * FROM voyageTable WHERE voyage = '".$voyage."'"; 

    $result = odbc_exec($connect, $query); 

    while($row = odbc_fetch_array($result)) // have tried odbc_fetch_row already 
    { 
    $fullName = odbc_result($result, 1); 
    } 

    $dateFile = "CMDU-".$voyage."-".date('dmY').".txt"; 
    $dataString = $fullName . "\n"; 
    $fWrite = fopen($dateFile, "a"); 
    $wrote = fwrite($fWrite, $dataString); 
    fclose($fWrite); 

?> 

我知道我已經接近了。

我改變了無數次while循環。我也試圖做到這一點:

<?php 
    while(odbc_fetch_array($result)) 
    // ... 
?> 

請幫忙。 這也是不成功的。

+1

可能的旁註? '$ query =「SELECT * FROM voyageTable WHERE voyage ='」。$ voyage。「';'缺少結尾''',如'$ query =」SELECT * FROM voyageTable WHERE voyage ='「。$ voyage。'' 「;' - 注意語法高亮關閉了?如果是拼寫錯誤,請修改您的問題。如果不是,那將是一個問題。 –

+0

更簡單的解決方案是放棄連接,並執行此操作:'$ query =「SELECT * FROM voyageTable WHERE voyage ='$ voyage';」;';' – JakeGould

+1

您只是用最近的結果覆蓋'$ fullName'。 –

回答

0

而不是

$fullName = odbc_result($result, 1); 

你需要或者呼應出這樣的:

echo odbc_result($result, 1); 

或者把結果保存在一個這樣的數組:

$fullName[] = odbc_result($result, 1); 

只是存儲值作爲變量的$ fullname中每行的數據將覆蓋該值,併爲您提供結果中最後一行的最後一個值t集。

擴展ಠ_ಠ的評論。