循环运行9次并逐渐获得信息

时间:2014-05-18 09:12:49

标签: php for-loop while-loop

我试图从我的数据库中提取一些数据,并且循环表现得很奇怪。这是

我的代码:

<code>
  $query = "SELECT DISTINCT * FROM users WHERE username LIKE '%$search%'";

  $resultpage = "";

  $result = mysqli_query($con,$query);

  $rows = array();

  $resultpage = "<table class='table table-striped table-hover><tbody><tr><td>Search Results</td></tr>";

  while($row = mysqli_fetch_assoc($result)) {
    $rows[] = $row;

    foreach($rows as $row) {
      foreach($rows as $field => $value) {          
        array_unique($rows);
        $resultpage .= "<tr><td><a href='user?id=".$value["id"]."'>".$value["username"]."</a></tr></td>";
      }
    }      
  }
</code>

您可以看到输出here

基本上,有重复条目的模式,有些条目甚至不会出现,直到你进一步向下列。

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

我现在正在努力:

<code>
  $query = "SELECT DISTINCT * FROM users WHERE username LIKE '%$search%'";

  $rs = mysqli_query($con,$query);

  echo "<table class='table table-striped table-hover'><tbody><tr><td>Search Results</td></tr>";

  while($row = mysqli_fetch_assoc($rs)) {    
    $id = $row["id"];
    $username = html_encode($row["username"]);
    echo "<tr><td><a href='user.php?id=$id'>$username</a></td></tr>";
  }

  echo "</table>";
</code>

答案 1 :(得分:1)

在迭代$rows之前,您需要结束while循环。让while循环填充数组,然后迭代它。就像现在一样,当你填充它时,你会遍历$rows数组。

所以这里发生的是:

找到名称1并将其添加到数组 - &gt;数组有1个元素。打印此元素。

找到名称2并将其添加到数组中 - &gt;数组有2个元素。两个元素都打印出来。

等。等

以下是修复:

while($row = mysqli_fetch_assoc($result)) {
  $rows[] = $row;
}

foreach($rows as $row) {
  foreach($row as $field => $value) {          
    array_unique($row);
    $resultpage .= "<tr><td><a href='user?id=".$value["id"]."'>".$value["username"]."</a></tr></td>";
  }
}