Я вызываю файл конфигурации базы данных (db_config.php) в моем файле header.php. Я вызываю header.php в своем шаблоне (location.php). Мне нужно получить доступ к переменным в файле конфигурации базы данных, поскольку я запускаю запросы, которые возвращают результат, который я затем вызываю в шаблоне.
Итак, в моем файле db_config.php у меня есть следующее:
$area_query = "SELECT * FROM `locations` where `type` = 'area'";
mysqli_query($db, $area_query) or die('Error querying database.');
$area_result = mysqli_query($db, $area_query);
if (!$area_result) {
printf("Error: %s\n", mysqli_error($con));
exit();
}
Затем в файле с именемlocations.php я просматриваю результат вышеприведенного, используя:
while ($row = mysqli_fetch_array($area_result))
{
echo "<li class='location-list-item'><a href='location/$row[name]'><span class='initial-letter'>".mb_substr($row['name'],0,1)."</span>".$row['name']." <i class=\"fa fa-chevron-circle-right\" aria-hidden=\"true\"></i></a></li>";
}
Это отлично работает, если я включаю db_config.php в header.php, используя следующее:
include("config/db_config.php");
Однако, если я использую:
include($_SERVER['DOCUMENT_ROOT']."/config/db_config.php");
Он находит db_config.php, как и ожидалось (как эхо чего-то в выводах db_config.php при посещении файла location.php), но я не могу получить доступ к $area_result. Я получаю следующую ошибку:
Notice
: Undefined variable: area_result
on line
28
Warning
: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null
given in
locations.php
on line
28
Я не понимаю, почему использование $_SERVER['DOCUMENT_ROOT'] не позволяет мне получить доступ к переменной? Мне нужно использовать $_SERVER['DOCUMENT_ROOT'] по причинам пути к файлу.
Чтобы уточнить, в location.php я включаю header.php, который, в свою очередь, включает db_config.php. Я могу отобразить информацию в db_config, которая выводится при посещении location.php, но я не могу получить доступ к переменным.
Спасибо.