我的網(wǎng)站頁面之一有一個 PHP 文件,其中包含我的所有 HTML 和 PHP 代碼。我在網(wǎng)站上有一個表,我想用 SQL 表中的數(shù)據(jù)填充它。我目前將所有代碼(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 } ?>當(dāng)所有內(nèi)容都在一個文件中時,這一點非常有效。它獲取數(shù)據(jù)庫中的所有行,迭代它們并將結(jié)果打印在表中,直到?jīng)]有剩余?,F(xiàn)在我正在創(chuàng)建一個類文件“queries.php”,它將在單獨的函數(shù)中包含我的所有 SQL 代碼。我將從“module.php”文件中調(diào)用每個函數(shù)。到目前為止,當(dāng)我只需要執(zhí)行查詢或從數(shù)據(jù)庫返回單行時,這非常有效,但是當(dāng)我必須從數(shù)據(jù)庫返回多行時,我遇到了問題。這是到目前為止我已經(jīng)實現(xiàn)的代碼:查詢.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); }然而,這是行不通的,因為每次執(zhí)行“while”循環(huán)時,它只是再次運(yùn)行該函數(shù)并一遍又一遍地返回同一行,并且從不迭代并返回其他行。問題:如何修復(fù)我的函數(shù),以便它能夠?qū)⑺行泻蛂eturn每行作為數(shù)組進(jìn)行迭代,以便我可以成功地將所有 SQL 放入不同的文件中并獲得相同的結(jié)果?我有多個 SQL 查詢,需要迭代結(jié)果,所以我認(rèn)為我需要修復(fù)我的executeGetQuery函數(shù)。
1 回答

狐的傳說
TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊
由于mysqli_fetch_array()每次調(diào)用僅返回一行,因此它不能作為getAllModules().
你可以有g(shù)etAllModules()return $execute,那么你的 PHP 代碼將是:
<?php
$execute = $query->getAllModules();
while ($module = mysqli_fetch_array($execute)) { ?>
<!-- your table row -->
<?php } ?>
- 1 回答
- 0 關(guān)注
- 162 瀏覽
添加回答
舉報
0/150
提交
取消