使用每一行作为包含的get变量?

时间:2017-09-13 19:14:39

标签: php mysql sql

我正在开发一个通知系统,我想使用一种我用来查看配置文件的平台,其中包含数据库中的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。请提供相关答案,我真的很感激。

3 个答案:

答案 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']作为参数调用它。