Я хочу динамически заполнять меню веб-сайта в PHP, используя значения MySql.
Таблица MySql состоит из двух полей:
Первое называется «категория», другое - «родительский».
Но мне также необходимо указать некоторые »подкатегории ", например:
Категории : МУЖЧИНЫ, ЖЕНЩИНЫ, МАЛЬЧИКИ, ДЕВОЧКИ
Подкатегории : РУБАШКИ, БРЮКИ, ОБУВЬ, АКСЕССУАРЫ
Поэтому я решил решить эту проблему, внедрив в таблицу «родительское» поле так:
, если parent = 0, это означает, что это основная категория (MEN, WOMEN, BOYS, GIRLS)
если parent = 1, это означает, что это подкатегория, следовательно, это MEN'S SHIRT
, если parent = 1, это означает, что это подкатегория, следовательно, это MEN'S PANTS
, если parent = 1, это означаетчто это подкатегория, поэтому это MEN'S SHOES
, если parent = 1, это означает, что это подкатегория, следовательно, это MEN'S SHIRT
, если parent = 2, это означает, что это подкатегория, поэтомуэто ЖЕНСКАЯ РУБАШКА
если parent = 2, это означает, что это подкатегория, поэтому яt ЖЕНСКИЕ БРЮКИ
если родитель = 2, это означает, что это подкатегория, следовательно, это ЖЕНСКАЯ ОБУВЬ
если родитель = 2, это означает, что это подкатегория, поэтому это ЖЕНСКАЯ РУБАШКА
... ETC ...
(может быть, есть более эффективный способ, но я так об этом думал)
Теперь, если я установлю свой код PHP следующим образом:
$parent_arr_id = $parent_arr['id'];
$sql = "SELECT * FROM categories WHERE parent ='parent_arr_id'";
$query_child = $db->query($sql);
while($child = mysqli_fetch_assoc($query_child)) :
echo $child['category'];
endwhile;
с родителем = 1 в моей базе данных MySql, что я должен получить?
Правильный вывод должен быть:
Рубашки, брюки, обувь, аксессуары .
Вместо этого я получаю:
Мужчины, женщины, мальчики, девочки
Я трижды проверил значения по умолчанию в таблице, все правильно, могу гарантировать 100%.
Я вручную делал запросы непосредственно в MySql, и он работает.
Поэтому я тщательно проверил первую строку, отобразив ее переменную следующим образом:
$parent_arr_id = $parent_arr['id'];
var_dump($parent_arr_id);
Но я получаю NULL значение!
Я думаю, именно поэтому я получаю
мужчин, женщин, мальчиков, девочек insted из
рубашки, брюки, обувь, аксессуары .
Может быть, они являются значениями по умолчанию (?).
При онлайн-проверке кажется, что это происходит, потому что это массив ассоциативных объектов, и его следует преобразовать в массив строк.Я пытался:
var_dump ($child['category']);
, но ничего не изменилось: NULL
Может кто-нибудь, пожалуйста, помогите мне?
Понятия не имею, как решить такую дилемму!:)
Заранее большое спасибо!