2015-12-15 64 views
2

我選擇了數據庫中的前5行,並使用ODBC作爲連接,而不是MSSQL連接的自然方式。每當我刷新我的頁面,其中while和foreach循環包含,它提供2個輸出,而不是一個。你能幫我傢伙與ODBC while和foreach循環輸出2結果php

這裏是我的全部代碼

<?php 
      $que = "SELECT top 5 notification FROM notification order by datetime desc"; 
      $queresa = odbc_exec($conn,$que); 
      $rows = array(); 

      while($myRow = odbc_fetch_array($queresa)){ 
       $rows[] = $myRow; 
        foreach($rows as $row) { 
         foreach($row as $key => $value) { 
          $result = $value; 
          echo "<a href='#' class='list-group-item'> 
            <i class='fa fa-envelope fa-fw'></i><font color='green'>$result</font> 
           </a>"; 
         } 
        } 
      } 
?> 
+0

你應該while循環之後做到這一點的foreach。 – Manwal

+0

您正在添加到'$ rows' - >'$ rows [] = $ myRow;',然後遍歷整個'$ rows' - >'foreach($ rows as $ row)''。因此,在每個循環中添加1個更多值,然後遍歷每個值。 – Sean

回答

1

您遍歷數組很多時間,而被迭代,所以它 對你發生了兩次。在while loop (完全讀取數據)後迭代完整數組。

考慮下面的代碼片段:

<?php 
$que = "SELECT top 5 notification FROM notification order by datetime desc"; 
$queresa = odbc_exec($conn,$que); 
$rows = array(); 

while($myRow = odbc_fetch_array($queresa)){ 
    $rows[] = $myRow;//pushing into $rows array 
} 

//Now iterating complete array 
foreach($rows as $row) { 
     foreach($row as $key => $value) { 
      $result = $value; 
      echo "<a href='#' class='list-group-item'> 
            <i class='fa fa-envelope fa-fw'></i><font color='green'>$result</font> 
           </a>"; 
     } 
    } 
?> 
+0

感謝您的快速回復。現在我明白這個錯誤比以前更清楚了,並且深入瞭解如何使用while和foreach。非常感謝。 – prf