我的网站分为几个部分(新闻,关于,联系..等等),我试图将它们包含在循环中。 从数据库中选择部分名称和每个部分的编号。 它需要用PHP来完成,因为部分可能会不时地(以及部分的数量)不同,所以动态代码是唯一的方法。
问题是我的代码只包含第一部分而其他部分则消失了。
这是我的PHP代码:
include 'includes/dbh.inc.php';
$sql = "SELECT section_name FROM sections WHERE visiblity!='hidden' ORDER BY section_number";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
include ('sections/' . $row['section_name'] . '.php');
}
我经常使用这段代码而且它一直都有用。我包含问题?
感谢您的帮助!
答案 0 :(得分:2)
由于您没有描述您遇到的错误,我将假设您收到“丢失文件”警告,然后依赖该文件的代码出现错误。
while ($row = mysqli_fetch_assoc($result)) {
$path = 'sections/' . $row['section_name'] . '.php';
if (file_exists($path)) {
include ($path);
} else {
// throw exception, or log it, or something
throw new Exception("Required file not found: $path");
}
}
$loaded = [];
while ($row = mysqli_fetch_assoc($result)) {
$path = 'sections/' . $row['section_name'] . '.php';
if (file_exists($path)) {
$loaded[] = $row['section_name'];
include ($path);
}
}
...
if (in_array('some_section', $loaded)) {
// build the section
}
注意:根据您实际尝试完成的内容,有很多更好的方法可以做到这一点。我高度建议重新考虑这种文件/内容/包含管理方法。