У меня есть файл 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 } ?>
Это прекрасно работает, когда все это в одном файле. Он получает все строки в базе данных, перебирает их и печатает результаты в таблице до тех пор, пока их не останется.
Теперь я делаю файл класса «запросы. 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);
}
модуль. php
<?php
while ($module = $query->getAllModules()) { ?>
<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 } ?>
Однако это не работает, потому что каждый раз, когда выполняется «while» l oop, он просто запускает функцию снова и снова и снова возвращает одну и ту же строку и никогда не повторяет и не возвращает другие строки .
ВОПРОС: Как исправить мою функцию, чтобы она перебирала все строки и return
каждую строку в виде массива, чтобы я мог успешно поместить все свои SQL в другой файл и получить тот же результат?
У меня есть несколько SQL запросов, где мне нужно будет перебрать результаты, поэтому я думаю, что мне нужно исправить мою executeGetQuery
функцию.