Php 将每行用作include的get变量?

Php 将每行用作include的get变量?,php,mysql,sql,Php,Mysql,Sql,我正在开发一个通知系统,我想使用我建立的一种平台来查看数据库“friendships”中ID为的个人资料(它跟踪发件人、收件人和友谊请求的日期) 我一直在尝试为每一行包含这个概要文件模块(它使用$\u GET变量获取用户信息),我需要一种方法为每一行设置一个变量,然后立即使用ID包含该模块,但是当我尝试这个方法时,只会出现一个,而不是我的4个请求 while ($row = mysqli_fetch_assoc($result)) { echo "<div class='item

我正在开发一个通知系统,我想使用我建立的一种平台来查看数据库“friendships”中ID为的个人资料(它跟踪发件人、收件人和友谊请求的日期)

我一直在尝试为每一行包含这个概要文件模块(它使用$\u 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>";
}
while($row=mysqli\u fetch\u assoc($result)){
回声“;
$\u GET['user']=$row['sender\u id'];
$path=$\u服务器['DOCUMENT\u ROOT'];
$path.=“/profile/module.php”;
包括一次(路径);
回声“;
}
我知道这样设置一个变量是错误的,但我不知道该怎么做

更新:应用Gautum Rai的代码后,将显示正确的关于div,但它们显示为空

这是我使用原始代码(回显一个人的信息)后生成的HTML


MyNameIsKnuckles


没什么。正在等待下一个omikron版本


注意:我已经问过类似的问题,但我收到的评论告诉我加入变量,或者不要使用while循环获取assoc。请提供相关答案,我将非常感谢。

您使用的是
include\u once
,它明确包含文件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>";
}
while($row=mysqli\u fetch\u assoc($result)){
回声“;
$\u GET['user']=$row['sender\u id'];
$path=$\u服务器['DOCUMENT\u ROOT'];
$path.=“/profile/module.php”;
file_get_contents($path);//要打印内容,只需回显即可
回声“;
}

这里有很多错误

除了$\u会话之外,您不应该向superglobals写入数据


您在一个循环中多次调用include_-这是错误的。我怀疑您确实希望在每次循环迭代中处理include文件的内容——虽然include(或require)就足够了,但这也是错误的。您正在非常高效地使用资源(并且可能没有将应用程序逻辑和html分离)。解决此问题的更正确方法是在包含文件中定义一个函数,并使用$row['sender\u id']作为参数调用该函数。

include\u once
包含一次模板…如果您的意思是将其更改为
include
,则不会更改任何内容。如果查询返回多个结果,您将获得多个div输出,即使include以某种方式失败。请用生成的答案更新您的问题html@Steve在我使用Gautum Nui的代码之后发生了一些有趣的事情,div现在可以正确显示,但没有模块。现在我将在答案中提供HTML。好的,当您编辑问题时,添加
module.php
的内容,它可能会做一些奇怪的事情来终止循环(例如
exit
die
),但这不会改变结果。我仍然从这个人那里收到这个请求。当您只得到一个div时,那么您的SQL可能只返回一行?你检查过这个了吗?当你的结果中只有一个div,那么你只做了一次循环,这意味着你的
mysqli\u fetch\u assoc
没有更多的行。将循环中的代码更改为
echo$row['sender\u id']
完美地显示了添加我的人的所有id。为什么?如文所述,这不会起任何作用。如果将结果保存到变量中,它将包含原始php代码,这也没有多大用处。因此,我应该能够将变量设置为行而不会出现问题?如果这是您的要求,您的代码已经将表示数据记录的关联数组复制到“$row”中,但解析包含文件时,$row不在范围内。
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>";
}