Я новичок в PHP и не знаком со многими его правилами, так что это может быть глупый вопрос.Предупреждение: mysqli_query(): Не удалось получить mysqli
У меня есть база данных с категориями верхнего уровня и подкатегориями, объединенными в один стол. Я хочу сначала распечатать все категории верхнего уровня, а затем распечатать подкатегории, связанные с этой категорией.
Вот мой код:
<?php
session_start();
include_once "/mysqli_connect.php";
$categories0 = mysqli_query($conn, "SELECT * FROM categories WHERE type = 'category'");
mysqli_close($conn);
?>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<div id="wrap" class="animate">
<?php
while ($categories = mysqli_fetch_array($categories0, MYSQLI_ASSOC)) {
$catecory_name = $categories['category'];
echo '
<div class="content">
<div class="content_container no_padding">
<div class="content_container header">
<p>'.$categories['category'].'</p>
</div>
';
$subcategories0 = mysqli_query($conn, "SELECT * FROM categories WHERE type = 'subcategory'");
while ($subcategories = mysqli_fetch_array($subcategories0, MYSQLI_ASSOC)) {
echo $subcategories['category'];
//mysqli_free_result($subcategories0);
}
echo '
</div>
</div>
';
}
?>
</div>
</div>
</body>
</html>
Вот скрипт подключения:
<?php
DEFINE ('DB_USER', '*');
DEFINE ('DB_PASSWD', '*');
DEFINE ('DB_HOST', '*');
DEFINE ('DB_NAME', '*');
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWD, DB_NAME);
if(!$conn){
die('Database connection error');
}
echo '<!-- Connected to database -->'
?>
возвращает следующее сообщение об ошибке:
Warning: mysqli_query(): Couldn't fetch mysqli
Когда оба запроса находятся выше типа документа все это хорошо, но когда второй запрос ниже doctype, возникает ошибка.
Первый запрос всегда работает без проблем, это второй, который возвращает ошибку.
Я не могу понять, что происходит, если кто-то может мне помочь, что будет оценено.
Где код, который открывает соединение с базой данных? –
ПОЧЕМУ вы не удаляете '' из своего кода и попробуйте !! – Saty
@ Хобо Сапиенс да. Первый запрос прошел нормально, это только второй. – Richie378