я совсем еще новачок в php, пробую сделать первый проект, пока вроде все получается, но столкнулся с след. задачей, по которой прошу у вас подсказки.
И так, есть форма добавления объявления, в которой есть Поле "Рубрика" и "Подрубрика".
В поле "Рубрика" я вывел информацию для выбора.
А вот с полем Подрубрика у меня проблема, так как незнаю как реализовать вывод подрубрик которые относятся только к выбраной рубрике.
У меня есть 2 таблицы, в одной из них есть список рубрик, а в другой список подрубрик с id главной рубрики.
Чуствую что задача очень простая, но не могу никак решить.
Если кто-то сможет, прошу описать как решить подобную задачу?
спасибо!
Спустя 5 минут, 23 секунды (17.07.2012 - 15:25) nikolasline написал(а):
Почитайте про LEFT JOIN в MYSQL
Спустя 2 минуты, 1 секунда (17.07.2012 - 15:27) nikolasline написал(а):
Могу написать SQL запрос если предоставите названия таблиц и полей.
Спустя 9 минут, 32 секунды (17.07.2012 - 15:37) stepan_fed написал(а):
Цитата (nikolasline @ 17.07.2012 - 12:27) |
Могу написать SQL запрос если предоставите названия таблиц и полей. |
таблица с рубриками: categories
есть 2 колонки:id и title
таблица с подрубриками:sub_cat
3 колонки:
id, sub_cat, main_cat
в колонке sub_cat - названия всех подрубрик
в колонке main_cat - id рубрики из таблицы categories
буду очень благодарен за помощь!
Спустя 6 минут, 24 секунды (17.07.2012 - 15:43) nikolasline написал(а):
SELECT sub_cat.* FROM categories INNER JOIN sub_cat on categories.id = sub_cat.main_cat WHERE categories.id='1'
1 - id категории
1 - id категории
Спустя 15 минут, 32 секунды (17.07.2012 - 15:59) stepan_fed написал(а):
Цитата (nikolasline @ 17.07.2012 - 12:43) |
SELECT sub_cat.* FROM categories LEFT JOIN sub_cat on categories.id = sub_cat.main_cat WHERE categories.id='1' 1 - id категории |
спасибо большое!
вывод подрубрики где id = 1 получается.
но вот когда я выбираю другую рубрику, ничего не меняется.
У меня на страничке есть форма, в которой много полей, первые из них: Рубрика и Подрубрика.
Так я вывожу рубрики в лист:
<label>Рубрика* <select name="cat">
<?php
$result = mysql_query("SELECT * FROM categories", $db);
$myrow = mysql_fetch_array ($result);
do
{
printf ("<option>%s</option>", $myrow['title']);
}
while ($myrow = mysql_fetch_array ($result));
?>
</select></label>
после этого идет поле с выбором рубрики:
<label>Подрубрика* <select name="sub_cat">
<?php
$result1 = mysql_query("SELECT sub_cat.* FROM categories LEFT JOIN sub_cat on categories.id = sub_cat.main_cat WHERE categories.id='2'", $db);
$myrow1 = mysql_fetch_array ($result1);
do
{
printf ("<option>%s</option>", $myrow1['sub_cat']);
}
while ($myrow1 = mysql_fetch_array ($result1));
?>
</select></label>
как вы думаете в чем проблема.
мне кажется что проблема в том что я не так вывожу рубрики!
Спустя 25 минут, 58 секунд (17.07.2012 - 16:25) nikolasline написал(а):
Ето лучше заменить
на:
<?php
$result1 = mysql_query("SELECT sub_cat.* FROM categories LEFT JOIN sub_cat on categories.id = sub_cat.main_cat WHERE categories.id='2'", $db);
$myrow1 = mysql_fetch_array ($result1);
do
{
printf ("<option>%s</option>", $myrow1['sub_cat']);
}
while ($myrow1 = mysql_fetch_array ($result1));
?>
на:
<?php
$result1 = mysql_query("SELECT sub_cat.* FROM categories INNER JOIN sub_cat on categories.id = sub_cat.main_cat WHERE categories.id='2'", $db);
while ($myrow1 = mysql_fetch_array ($result1))
{
printf ("<option>%s</option>", $myrow1['sub_cat']);
}
?>
Спустя 10 минут, 6 секунд (17.07.2012 - 16:35) nikolasline написал(а):
Вот весь код:
<form>
<label>Рубрика* <select name="cat" onchange="location.href='index.php?sub_category='+this.value">
<?php
$result = mysql_query("SELECT * FROM categories", $db);
while($myrow = mysql_fetch_array ($result))
{
echo "<option value='{$myrow['id']}'>{$myrow['title']}<option>";
}
?>
</select>
</label>
<label>Подрубрика*
<select name="sub_cat">
<?php
$result1 = mysql_query("SELECT sub_cat.* FROM categories INNER JOIN sub_cat on categories.id = sub_cat.main_cat WHERE categories.id='{$_REQUEST['sub_category']}'", $db);
while ($myrow1 = mysql_fetch_array ($result1))
{
printf ("<option>%s</option>", $myrow1['sub_cat']);
}
?>
</select></label>
</form>
Спустя 41 минута, 58 секунд (17.07.2012 - 17:17) stepan_fed написал(а):
код заработал!
но есть такой момент:
- когда выбираю первую рубрику, не вискакивают подрубрики.
- когда открываю список с рубриками и вибираю одну из них, выбираются подрубрики, но сразу после этого рубрика становится та что по дефолту, тоесть первая, при этом подрубрики остаются от выбраной рубрики!
спасибо!
но есть такой момент:
- когда выбираю первую рубрику, не вискакивают подрубрики.
- когда открываю список с рубриками и вибираю одну из них, выбираются подрубрики, но сразу после этого рубрика становится та что по дефолту, тоесть первая, при этом подрубрики остаются от выбраной рубрики!
спасибо!