База имеет структуру следующего вида - 3 таблицы:
1. Таблица tovar (id, name, text)
2. Таблица pages (id, name, parent) - это категории. Начальная категория имеет parent 0, а подкатегории соответсвующий parent.
3. Таблица tovar_vitrina (id, id_tovar, id_cat) - те товары что будем выводить, витрина.
Как правильно составить запросы чтобы не наговнокодить?
К примеру мне нужно вывести товары одной категории, в которой есть еще 3-5 подкатегорий
SELECT * from pages WHERE parent IN (12,15,18);
Цитата (sg.com @ 4.01.2017 - 15:48) |
SELECT * from pages WHERE parent IN (12,15,18); |
Окей, а как узнать parent'ы категорий?
Фишка в том что их может быть 0-1, а может быть 10
Цитата (Dizzy @ 4.01.2017 - 20:13) |
Окей, а как узнать parent'ы категорий? |
либо отдельным запросом либо вложенным
Цитата (sg.com @ 4.01.2017 - 16:59) |
Цитата (Dizzy @ 4.01.2017 - 20:13) | Окей, а как узнать parent'ы категорий? |
либо отдельным запросом либо вложенным
|
<?php
$parent_array = array();
$last_parent = 0;
$res = mysql_query("SELECT * FROM `pages` WHERE `parent` = $last_parent");
if($num_rows = mysql_num_rows($res)) != 0)
{
$parent_array[] = $res['parent'];
$res = mysql_query("SELECT * FROM `pages` WHERE `parent` = $last_parent");
$last_parent = mysql_fetch_array($res)['parent'];
while($num_rows = mysql_num_rows($res)) != 0) {
$parent_array[] = $res['parent'];
$res = mysql_query("SELECT * FROM `pages` WHERE `parent` = $last_parent");
$last_parent = mysql_fetch_array($res)['parent'];
}
}
?>
Пытаюсь вытащить все parent'ы но выходит какой то бред(