我正在开发一个通知系统,我想使用一种我用来查看配置文件的平台,其中包含数据库中的ID' friendships' ; (跟踪友情请求的发件人,收件人和日期)
我一直试图找到一种方法来为每一行包含这个配置文件模块(它使用$ _GET变量来获取用户信息),我需要一种方法来为每一行设置一个变量然后使用ID立即包含该模块,但是当我尝试这个时,只显示一个而不是我有的4个请求。
while ($row = mysqli_fetch_assoc($result)) {
echo "<div class='item friend'>";
$_GET['user'] = $row['sender_id'];
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/profile/module.php";
include_once($path);
echo "</div>";
}
我知道设置这样的变量是错误的,但我不知道如何做到这一点。
更新:应用Gautum Rai的代码后,会显示正确的div,但它们显示为空。
这是我使用原始代码后生成的HTML(与一个人的信息相呼应)。
<div class="item friend">
<div class="profile">
<img class="pic" title="Taswell: Omikron Player" style="background-image: url("/img/badges/omikron.png") !important;" src="/uploads/profile19.jpg?" 2147213591="">
<p class="username">MyNameIsKnuckles<img class="medal" src="/img/medals/dragonfly.png" title="Queen Of The Hive"></p><br>
<p class="bio playing">nothin. just waiting for the next omikron build.</p>
</div>
注意:我已经问了类似的东西,但是我得到了评论告诉我加入变量或者不使用while循环来获取assoc。请提供相关答案,我真的很感激。
答案 0 :(得分:1)
您怀疑include_once
是明确的,包括文件一次,您的文件名始终相同。请仅使用include
。
答案 1 :(得分:0)
使用file_get_contents()
代替include_once
,
您的代码应为:
while ($row = mysqli_fetch_assoc($result)) {
echo "<div class='item friend'>";
$_GET['user'] = $row['sender_id'];
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/profile/module.php";
file_get_contents($path); // want to print contents just echo it
echo "</div>";
}
答案 2 :(得分:0)
这里有很多错误。
除$ _SESSION外,你永远不应该写超级全局。
你在循环中多次调用include_once - 这是错误的。我怀疑你真的希望为每个循环迭代处理incldued文件的内容 - 而include(或require)就足够了,这也是错误的。您正在非常无效地使用资源(并且可能没有将应用程序逻辑和html分开)。解决问题的一种更正确的方法是在include文件中定义一个函数,并使用$ row ['sender_id']作为参数调用它。