2013-07-05 68 views
1

我正在通過php查詢與odbc連接的數據庫。當我查詢數據庫時,它返回第一行兩次,然後剩下的行數量正確。odbc查詢返回第一行兩次,然後正常返回休息

例子查詢:

$stm = SELECT[sUsername] FROM [dbo].[Abilis].[Users] WHERE sUsername = ?; 
$pstm = odbc_prepare($conn, $stm); 
$exc = odbc_execute($query, array($Username)); 

我也使用DISTINCT嘗試,但還沒有任何工作。

編輯:

for($i=0; $i<odbc_num_rows($pstm);$i++){ 

      $row = odbc_fetch_array($pstm, $i); 
      if($row['OnCreditHold'] == '1'){ 
       $out = '<button style="color:red;margin:0 auto;" class="btn" onclick="'.'window.location.href='."'information.php?info=".$row['Account_no']; 
       $out .= "'".'">'.$row['Name'].'</br>'; 
       $out .= $row['Del_ad1'].'</button>'; 
      } 
      else{ 
       $out = '<button class="btn" style="margin: 0 auto;" onclick="'.'window.location.href='."'information.php?info=".$row['Account_no']; 
       $out .= "'".'">'.$row['Name'].'</br>'; 
       $out .= $row['Del_ad1'].'</button>'; 

      } 
      echo $out; 
      } 
+1

確保您沒有該用戶名兩次插入 – mirkobrankovic

+1

如果在您的php應用程序之外運行查詢會發生什麼? –

+0

你可以添加一些代碼來展示你如何遍歷結果集? – andrewsi

回答

1

已檢查的查詢結果是這個程序的好外 - 對你有好處。這意味着問題在於你的循環結構,或者你的方法是獲取數據,例如odbc_fetch_array()

我遇到了這個問題一次,我不記得的解決方案。我必須嘗試其他方法來隔離原因。

例如,而不是for(),請嘗試foreach ($elems as $elem) { ... }

當然,當你遇到問題時,簡化所有其他方面。例如,刪除if()結構。