从现有数组php分配新数组仅显示数组的最后一个值

时间:2013-10-25 23:45:23

标签: php html arrays echo

我这里有一个小问题。我有以下代码,我创建一个搜索查询,我试图采取“$ 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>

我希望我能解决这个问题,这让我烦恼!谢谢你的帮助!!

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

while($ row = mysqli_fetch_array($ result))

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

$item[] = $row.

我确定你要用下一行代码完成什么。要显示您需要的所有项目

foreach($item as $singleItem)
{
echo $singleItem['follower_username']."<br>";
  }