2015-12-15 71 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