在while循环中嵌入html以根据返回的数据显示结果

时间:2018-03-09 15:13:34

标签: php sql loops mysqli while-loop

嗨朋友

我提供的代码显示与登录用户相关联的数据(moduleID& moduleName)。目前它显示了与用户登录时应该在屏幕上显示的moduleID相关联的特定html代码。我想实现一种方法来迭代值(循环中可能是if-else语句)以便特定的html代码i已经显示当用户有一个或多个moduleID附加到它们时显示。

这是我的主页演示.php

   <?php
    session_start();
    //including the database connection file
    include 'config.php';

    $cuserID= $_SESSION['userID'];

    //fetching data in descending order (lastest entry first)
    //$result = mysql_query("SELECT * FROM users ORDER BY id DESC"); // mysql_query is deprecated
    $result = mysqli_query($mysqli, "SELECT m.moduleID, m.moduleName
    FROM modules m
    JOIN courses c ON m.courseID = c.courseID
    JOIN usersDemo u ON c.courseID = u.courseID
    WHERE userID = '$cuserID'"); // using mysqli_query instead



            //while($res = mysql_fetch_array($result)) { // mysql_fetch_array is deprecated, we need to use mysqli_fetch_array 
            while($res = mysqli_fetch_array($result)) {     
                echo "

        <div id='loader-wrapper'>
            <div id='loader'><div id='loader1'> 
              </div> 
              </div>
        <p><a  onclick='IS4439Function()'>IS4437</a></p>
        </div>

        ";

            }
            ?>

以下是附加到IS4437的moduleID

的html代码
<div id="loader-wrapper">
            <div id="loader"><div id="loader1"> 
              </div> 
              </div>
        <p><a  onclick="IS4439Function()">IS4437</a></p>
        </div>

以下是附加到IS4408的moduleID的html代码

<div id="loader-wrapper1">
            <div id="loader"><div id="loader1"> 
              </div> 
              </div>
        <p><a onclick="IS4408Function()">IS4408</a></p>
        </div>

修改

因为我已经提到了我目前遇到的问题,这些是我已经尝试过的不同方法。

最初在将html嵌入homepageDemo.PHP中的while循环之前,我只是返回了moduleID&amp;与登录用户关联的moduleName为文本

<?php
session_start();
//including the database connection file
include 'config.php';

$cuserID= $_SESSION['userID'];

//fetching data in descending order (lastest entry first)
//$result = mysql_query("SELECT * FROM users ORDER BY id DESC"); // mysql_query is deprecated
$result = mysqli_query($mysqli, "SELECT m.moduleID, m.moduleName
FROM modules m
JOIN courses c ON m.courseID = c.courseID
JOIN usersDemo u ON c.courseID = u.courseID
WHERE userID = '$cuserID'"); // using mysqli_query instead



        //while($res = mysql_fetch_array($result)) { // mysql_fetch_array is deprecated, we need to use mysqli_fetch_array 
        while($res = mysqli_fetch_array($result)) {     
            echo "<tr>";
            echo "<td>"."<a>".$res['moduleID']."</a>"."</td>";
            echo "<td>"."<a>".$res['moduleName']."</a>"."</td>";
        }
        ?>

然后我尝试遍历这些值以返回与每个单独的moduleID相关联的html代码

SWITCH STATEMENT ATTEMPT:

while($res = mysqli_fetch_array($result)) {     

        switch ($cuserID) {
            case 1:
                echo "

                <div id='loader-wrapper'>
                    <div id='loader'><div id='loader1'> 
                      </div> 
                      </div>
                <p><a  onclick='IS4439Function()'>IS4437</a></p>
                </div>

                ";
                break;
            case 2:
                echo "

                <div id='loader-wrapper'>
                    <div id='loader'><div id='loader1'> 
                      </div> 
                      </div>
                <p><a  onclick='IS4408Function()'>IS4408</a></p>
                </div>

                ";

                break;
            case 7:
                echo"

                <div id='loader-wrapper'>

调用的函数

function IS4439Function() {
    {
      window.location.href = "global.php";
    }
}
function IS4408Function() {
    {
      window.location.href = "isStrategy.php";
    }
}
function IS4449Function() {
    {
      window.location.href = "webApp.php";
    }
}

不幸的是,我试图实现的目标也不是。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你真的很接近,而且我不确定断开连接的位置,但是你走了。您需要将硬编码的moduleID值(IS4439)替换为您已从数据库中提取的值。把你已经拥有的东西放在一起,它实际上只是归结为连接。

while($res = mysqli_fetch_array($result)) {     
    echo "
    <div id='loader-wrapper'>
        <div id='loader'><div id='loader1'> 
          </div> 
          </div>
    <p><a  onclick='" . $res['moduleID'] . "Function()'>". $res['moduleID'] . "</a></p>
    </div>
    ";
}

我建议,不是调用不同的函数,而是考虑只调用一个函数,并将moduleID作为参数传递,然后在函数内进行相应的操作。

根据您的更新,您将拥有此...

while($res = mysqli_fetch_array($result)) {     
?>
    <div id='loader-wrapper'>
        <div id='loader'><div id='loader1'> 
          </div> 
          </div>
    <p><a  onclick='redirectFunction("<?php echo $res['moduleID']; ?>");'><?php echo $res['moduleID']; ?></a></p>
    </div>
<?php
}
?>

你的职能是......

function redirectFunction(moduleID)
{
    var newLocation = "";

    if(moduleID == "IS4439")
    {
        newLocation = "global.php";
    }
    else if(moduleID == "IS4408")
    {
        newLocation = "isStrategy.php";
    }
    else if(moduleID == "IS4449")
    {
        newLocation = "webApp.php";
    }

    window.location.href = newLocation;
}