猿问

迭代多行并在函数内输出结果

我的网站页面之一有一个 PHP 文件,其中包含我的所有 HTML 和 PHP 代码。我在网站上有一个表,我想用 SQL 表中的数据填充它。我目前将所有代码(HTML、Javascript、SQL、PHP)放在一个名为“modules.php”的文件中。这是我必须填充表的代码:


<?php

      // Shows all the modules in the table

      $module_sql = "SELECT *, course.course_name FROM module INNER JOIN course on module.course = course.course_id";

      $module_qry = mysqli_query($link, $module_sql);

      while ($module = mysqli_fetch_array($module_qry)) { ?>

        <tr>

          <td><?php echo $module['module_name']; ?></td>

          <td><?php echo $module['course_name']; ?></td>

          <td><?php echo $module['perc_worth']; ?></td>

          <td><?php echo $module['credit']; ?></td>

          <td><?php echo $module['uni_year']; ?></td>

        </tr>

      <?php } ?>

当所有内容都在一个文件中时,这一点非常有效。它获取数据库中的所有行,迭代它们并将结果打印在表中,直到没有剩余。


现在我正在创建一个类文件“queries.php”,它将在单独的函数中包含我的所有 SQL 代码。我将从“module.php”文件中调用每个函数。到目前为止,当我只需要执行查询或从数据库返回单行时,这非常有效,但是当我必须从数据库返回多行时,我遇到了问题。这是到目前为止我已经实现的代码:


查询.php

    function executeGetQry($qry) {

        $execute = mysqli_query($this->databaseConnect(), $qry) or die(mysqli_error(

            $this->databaseConnect()));


        if ($execute == null) {

            return null;

        } else {

            return mysqli_fetch_array($execute);

        }

    }


    function getAllModules() {

        $module_sql = "SELECT *, course.course_name FROM module INNER JOIN course on module.course = course.course_id";

        return $this->executeGetQry($module_sql);

    }


然而,这是行不通的,因为每次执行“while”循环时,它只是再次运行该函数并一遍又一遍地返回同一行,并且从不迭代并返回其他行。


问题:如何修复我的函数,以便它能够将所有行和return每行作为数组进行迭代,以便我可以成功地将所有 SQL 放入不同的文件中并获得相同的结果?


我有多个 SQL 查询,需要迭代结果,所以我认为我需要修复我的executeGetQuery函数。


慕姐8265434
浏览 89回答 1
1回答

狐的传说

由于mysqli_fetch_array()每次调用仅返回一行,因此它不能作为getAllModules().你可以有getAllModules()return $execute,那么你的 PHP 代码将是:&nbsp; &nbsp; <?php&nbsp; &nbsp; &nbsp; &nbsp; $execute = $query->getAllModules();&nbsp; &nbsp; &nbsp; &nbsp; while ($module = mysqli_fetch_array($execute)) { ?>&nbsp; &nbsp; &nbsp; &nbsp; <!-- your table row -->&nbsp; &nbsp; <?php } ?>
随时随地看视频慕课网APP

相关分类

Html5
我要回答