【发布时间】:2017-12-28 20:24:37
【问题描述】:
我有一个带有朋友列表的网站,等等。我使用 while 循环来遍历列表,并且我想使用 foreach 循环。
while 循环的工作原理应该没有问题。我不是在问如何使用 foreach 循环。但是当我尝试更改 while 循环时,我意识到以下代码;
<?php
$my_id = $_SESSION['user_id'];
$request = "SELECT `request_from` FROM `friend_requests` WHERE `request_to`='$my_id' ";
$request_query = mysqli_query($conn, $request);
while ($run_request = mysqli_fetch_array($request_query)){
$from = $run_request['request_from'];
$username = getuser($from, 'username');
echo"<table>";
echo "<tr><td>".$username."</td></tr>";
echo "</table>";
echo "<br />";
}
output:
sammy davis jr
frank sinatra
dean martin
不生成包含朋友的 AN 数组,它包含任意数量的数组,其中只有一个元素。就像我做的那样
print_r($runrequest);
output:
Array ( [0] => 20 [request_from] => 20 )
Array ( [0] => 21 [request_from] => 21 )
Array ( [0] => 19 [request_from] => 19 )
所以我的问题是,有没有办法让我重写我的 mysqli_query 以便我只生成一个任意大的数组,然后我将使用 foreach 循环进行迭代。与生成任意数量数组的查询相反,我必须使用 while 循环进行迭代。
【问题讨论】:
-
我刚刚做了 print_r(...) 以表明正在生成一系列数组而不是一个
-
对不起,getuser();是我编写的一个特殊函数,用于根据 uid 打印用户名