0

我这里有个小问题。我有以下代码,我创建了一个搜索查询,我试图采用“$row”数组并创建一个名为“$item”的新数组,这样我就可以在我的 div 语句中回显这些值。这段代码有效,我用“follower_username”值回显了 $item 数组,但是只有最后一个值被回显。我的数据库 Nathan、Brett、Nathan2 中有值,它只与 Nathan2 或数组 $item 的最后一个值相呼应。

这是我的代码:

 $result = mysqli_query($con,"SELECT * FROM followers
WHERE username='$username'");
?>

<?php

while ($row = mysqli_fetch_array($result))

  {
 $item = $row;

}


?>


<body>
<div id="contentwrap">
    <div rel="scrollcontent2">
       <?php echo $item['follower_username'];?> <img style="width: 50px; height: auto;"<?php echo '<img src="/user_photo/' . $item['follower_username'] . '.jpeg" />';?>
</div>

我希望我能解决这个问题,这让我很烦!感谢您的任何帮助!!

4

2 回答 2

0

您正在做的是每次将 item 的值重新分配给当前行。

$row 将是结果查询中表行值的对象,因此,如果您希望 $item 变量中的所有行都需要作为数组来存储每个结果,而不是将当前行存储在每个变量的相同变量中排。

然后,您将需要迭代该数组以显示每个结果。

$i = 0;
$item = array();

while ($row = mysqli_fetch_array($result))
{
  $item[$i] = $row;
  $i++;
}

<div>
  <?php 
    foreach ($item as $value)
    {
       echo $value['follower_username'];
    }
  ?>
</div>

下面是一个例子,展示了相同想法的一些简写版本: $item = array();

while ($row = mysqli_fetch_array($result))
{
  $item[] = $row;
}

<div>
  <ul>
  <?php foreach ($item as $value): ?>
    <li><?php echo $value['follower_username']; ?></li>
  <?php endforeach; ?>
  </ul>
</div>
于 2013-10-25T23:57:44.963 回答
0

而 ($row = mysqli_fetch_array($result))

这样做是抓取结果集中的下一行,并将其分配给变量$row. 每次循环运行时,它都会将最新的行分配给$item. 因此,要存储整个结果集,请使用

$item[] = $row.

我确定您正在尝试使用我们的下一行代码来完成什么。要显示所有项目,您需要类似

foreach($item as $singleItem)
{
echo $singleItem['follower_username']."<br>";
  }
于 2013-10-25T23:59:13.530 回答