我的网站页面之一有一个 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函数。
狐的传说
相关分类