我的网站页面之一有一个 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函数。
1 回答
狐的传说
TA贡献1804条经验 获得超3个赞
由于mysqli_fetch_array()每次调用仅返回一行,因此它不能作为getAllModules().
你可以有getAllModules()return $execute,那么你的 PHP 代码将是:
<?php
$execute = $query->getAllModules();
while ($module = mysqli_fetch_array($execute)) { ?>
<!-- your table row -->
<?php } ?>
- 1 回答
- 0 关注
- 88 浏览
添加回答
举报
0/150
提交
取消