SQL — включить PHP не работает должным образом

Недавно я начал проект, в котором мне нужно загрузить несколько файлов. В этих файлах у меня есть цвета, которые приходят через 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

Решение

Попробуйте заменить ваше заявление на это:

if ($getcolor) {
while($row = $getcolor->fetch_assoc()) {
$primarycolor = $row['color'];
}
} else{
echo"no results in row";
}

Простая проверка if возможна, потому что результаты поиска возвращают «FALSE», если в результатах нет данных.
Оператор else требуется только для целей проверки.

Если вы ожидаете только 1 результат, вы можете выполнить «LIMIT 1», а также исключить оператор while.
Если вы вообще не хотите запускать скрипт, вы должны использовать require_once, а не include_once

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]