2013-10-25 23 views
0

我在這裏有一個小問題。我有下面的代碼,我創建一個搜索查詢,並試圖採取「$行」數組並創建一個名爲「$ item」的新數組,以便我可以在我的div語句中回顯值。這段代碼有效,我確實使用'follower_username'值回顯$ item數組,但只有最後一個值被回顯出來。我在我的數據庫Nathan,Brett,Nathan2中有值,它只是回聲Nathan2,或者數組$ item的最後一個值。從現有數組php中分配新數組只顯示數組的最後一個值

這裏是我的代碼:

$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> 

我希望我能得到這個解決了,這是竊聽我!感謝您的任何幫助!!

+0

你需要把你的echo項目線在while循環中 – acutesoftware

回答

0

你正在做的是每次重新分配項目的值到當前行。

$ 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> 

下面是顯示同樣的想法的一些簡寫的一個示例:$ 項=陣列)(;

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> 
+0

謝謝大家!我終於明白了你的代碼。但稍微修改我的需求。它運作良好。謝謝! – user2921824

+0

沒問題。很高興我能幫上忙。 – chapman84

0

而($行= mysqli_fetch_array($結果))

什麼,做是搶在結果集中的下一行,並將其分配給變量$row。每次循環運行時,它都將最新的行分配給$item。因此,要存儲整個結果集,請使用

$item[] = $row. 

我確定您要用我們的下一行代碼來完成。要顯示所有項目,你需要類似的東西

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