所以最近我开始了一个项目,我需要加载一些文件。在这些文件中,我有通过SQL来的颜色;
问题是,我只能在一个文件中包含一种颜色。要包含的第一个文件将正常工作,但第二个文件不会。
最奇怪的是,如果我尝试添加一些回声,所有包含的文件都会回显它,但只有导入顺序中的第一个才能真正起作用。解释起来有点复杂,但有些代码可以提供帮助:
Portifolio.php(我将使用颜色)
<?php
error_reporting(E_ALL);
include_once ('php/db.php');
include_once ('php/colors/accent.php');
include_once ('php/colors/primary.php');
$page =
<<<HTML
// Long HTML code here
<nav class="$primarycolor">
// More code
<a class ="$accentcolor">
accent.php:
<?php
include ('../db.php');
$sql = "SELECT id, color FROM Colors WHERE id = 2";
$getcolor = mysqli_query($conn, $sql);
echo "Accent.php included";
if ($getcolor->num_rows > 0) {
while($row = $getcolor->fetch_assoc()) {
$accentcolor = $row['color'];
}
}
mysqli_close($conn);
?>
primary.php
<?php
include ('../db.php');
$sql = "SELECT id, color FROM Colors WHERE id = 1";
$getcolor = mysqli_query($conn, $sql);
echo "Primary.php has been included";
if ($getcolor->num_rows > 0) {
while($row = $getcolor->fetch_assoc()) {
$primarycolor = $row['color'];
}
}
mysqli_close($conn);
?>
db.php中
<?php
$conn = mysqli_connect("localhost","mucap","pswd","webdata");
echo "DB included.";
if (mysqli_connect_errno())
{
echo "Error: " . mysqli_connect_error();
}
?>
在这种情况下:
不会显示任何错误。
$ accentcolor将起作用
$ primarycolor只会假装它不存在
所有文件都会回应他们被告知的内容。
我做了很多研究并发现它可能是文件路径的东西,但我不这么认为:这是(部分)我的文件结构:
我不能[$ DOCUMENT_ROOT],因为这不应该有固定的路径,很长的解释。 我该怎么办?
答案 0 :(得分:-1)
尝试用以下内容替换你的陈述:
if ($getcolor) {
while($row = $getcolor->fetch_assoc()) {
$primarycolor = $row['color'];
}
} else{
echo"no results in row";
}
如果检查结果可以进行简单检查,因为搜索结果会返回&#34; FALSE&#34;如果结果中没有数据。
else语句仅用于验证目的。
如果你只想要1个结果,你可以做&#34; LIMIT 1&#34;以及消除while声明 如果您根本不希望脚本运行,则应使用require_once,而不是include_once