Видео
-видеоподкат1
-видеоподкат2
-видеоподкат3
Игры
-игрыподкат1
-игрыподкат2
--игрыподкат3
Галерея
-галереяподкат1
-галереяподкат2
-галереяподкат3
Видео, Игры, Галерея -> используются просто как шапки без ссылки. Ихние подкатегории - ссылки. Теперь надо навигацию автоматезировать. Создаю 2 таблички в БД (cat, subcat), соответсвенно в кат лежать категории, а субкат - подкатегории со связующей ячейкой.
Теперь встаёт вопрос - Как вывести это всё дело так, чтобы вид был как в списке навигации, показанный выше?
По началу я подумал отложить таблицу cat и использовать только subcat, то есть таким образом..
function queryCat($cat,$h4)
{
$querycat = mysql_query ("
SELECT `cat`,`title`,`url`
FROM `subcat`
WHERE `cat`=".$cat."
ORDER BY `title`
")
or die(mysql_error());
if(mysql_num_rows($querycat) > 0)
{
echo '
<h4>'.$h4.'</h4>
<ul>
';
while($rowcat = mysql_fetch_assoc($querycat))
{
echo '
<li>
<a href="/index.php?'.$cat.'='.$rowcat['url'].'">'.$rowcat['title'].'</a>
</li>
';
}
echo '</ul>';
}
else
{
echo 'Утеряна связь с базой данных.';
}
}
Пример заполненных ячеек ->
ячейка cat - video (ячейка для указания к какой категории относится запись)
ячейка title - Сериал (название)
ячейка url - serial (чпу)
И вывод выглядит так ->
<?php queryCat('video','Видео'); ?>
В результате выдаёт ошибку ->
Unknown column 'video' in 'where clause'
Явно где то ошибка, только вот найти никак не могу.
Хотелось бы как то по автоматезированней. К примеру если я захочу создать ещё раздел и потом в нём какие-нибудь категории. Было бы славно :)
ps: если в тексте есть орфографические ошибки, то прошу прощения, писал сонный)
Спустя 11 часов, 19 минут, 50 секунд (6.06.2012 - 16:49) razoramus написал(а):
Эгегеееееей
Спустя 10 минут, 45 секунд (6.06.2012 - 16:59) vital написал(а):
табличка my_table
id|parent_id|text
0|null|корень
1|0|подкатегория
id|parent_id|text
0|null|корень
1|0|подкатегория
SELECT * FROM my_table a left join my_table b on a.id = b.parent_id
Спустя 8 минут, 7 секунд (6.06.2012 - 17:08) razoramus написал(а):
Со вторым способом разобрался, там ковычки пропустил.
vital Можно по подробнее, что к чему?
WHERE `cat`='".$cat."'
vital Можно по подробнее, что к чему?
Спустя 43 минуты, 42 секунды (6.06.2012 - 17:51) vital написал(а):
Цитата (razoramus @ 6.06.2012 - 16:08) |
Со вторым способом разобрался, там ковычки пропустил.WHERE `cat`='".$cat."' vital Можно по подробнее, что к чему? |
Все должно быть очевидно. Создай такую табличку как я описал и выполни запрос.
Спустя 2 часа, 31 минута, 31 секунда (6.06.2012 - 20:23) razoramus написал(а):
vital
Я тебя не понял, как она будет влиять на то, как мне нужно сделать? Покажи на моём примере и с коментами желательно.
Я тебя не понял, как она будет влиять на то, как мне нужно сделать? Покажи на моём примере и с коментами желательно.
Спустя 34 минуты, 21 секунда (6.06.2012 - 20:57) vital написал(а):
Цитата (razoramus @ 6.06.2012 - 19:23) |
vital Я тебя не понял, как она будет влиять на то, как мне нужно сделать? Покажи на моём примере и с коментами желательно. |
Никак.
Я написал то - как правильно сделать то, что ты хочешь.
А то как сделал ты - это метод через задницу за который отрывают руки.
Спустя 21 минута, 53 секунды (6.06.2012 - 21:19) Gabriel написал(а):
хорошо, сегодня буду добрым )
тебе создали табличку и дали запрос который отбрасывает нужду в создании 2й таблицы и зацыкленного запроса.
тебе создали табличку и дали запрос который отбрасывает нужду в создании 2й таблицы и зацыкленного запроса.
Спустя 25 минут, 54 секунды (6.06.2012 - 21:45) razoramus написал(а):
vital
Цитата (razoramus @ 6.06.2012 - 17:23) |
Никак. Я написал то - как правильно сделать то, что ты хочешь. А то как сделал ты - это метод через задницу за который отрывают руки. |
Дак ты научи! Я написал так, как знаю я. Вот ты мне и покажи как сделать правильно!
Спустя 3 минуты, 40 секунд (6.06.2012 - 21:49) razoramus написал(а):
Цитата (Gabriel @ 6.06.2012 - 18:19) |
хорошо, сегодня буду добрым ) тебе создали табличку и дали запрос который отбрасывает нужду в создании 2й таблицы и зацыкленного запроса. |
Да нихрена я не понял! вы мне напишите пример с последовательным описанием. От того что вы пишите непонятно что(для меня), от этого в голове ничего не прибавится.
Спустя 11 минут, 14 секунд (6.06.2012 - 22:00) Gabriel написал(а):
Спустя 59 минут, 36 секунд (6.06.2012 - 22:59) razoramus написал(а):
Gabriel Вроде немного догнал..
то есть сейчас я создаю колонку с надписью `parent` и в этой же таблице добавляю строки с названием разделов (Видео, Музыка т.д.) со значением `0`, и для категорий значение `1`. На листочке расписал примерно как это будет работать. А почему именно LEFT JOIN а не INNER JOIN, зачем лишние поля с нулевым значением? Вот набросал из ваших примов запрос.
то есть сейчас я создаю колонку с надписью `parent` и в этой же таблице добавляю строки с названием разделов (Видео, Музыка т.д.) со значением `0`, и для категорий значение `1`. На листочке расписал примерно как это будет работать. А почему именно LEFT JOIN а не INNER JOIN, зачем лишние поля с нулевым значением? Вот набросал из ваших примов запрос.
<?php
$query = mysql_query = ("
SELECT `a.title` as `title2`, `b.title` as `title2`
FROM `categories` as `a` INNER JOIN `categories` as b on `a.id` = `b.parent`
") or die(misql_error());
?>
Спустя 1 час, 22 минуты, 6 секунд (7.06.2012 - 00:22) vital написал(а):
Цитата |
Дак ты научи |
20$ час.
ЧТо за требования? Я тебе ничего не обязан.
Пришел такой школьник и считает что на форуме всем больше делать нехер кроме как его учить. В задницу послан.
! |
sergeiss |
Спустя 5 минут, 54 секунды (7.06.2012 - 00:27) razoramus написал(а):
vital
Цитата (razoramus @ 6.06.2012 - 19:59) |
Пришел такой школьник и считает что на форуме всем больше делать нехер кроме как его учить. В задницу послан. |
Школьником я был 7 лет назад.
Цитата (razoramus @ 6.06.2012 - 19:59) |
ЧТо за требования? Я тебе ничего не обязан. |
Я по человечески попросил помочь, ты написал что-то непонятное для меня, я же в ответ попросил разьяснить что и как это будет работать, а ты мне начинаешь грубить, типо я какой то прыщавый школьник. Ты сначала в профиль загляни и посмотри сколько мне лет, а потом говори. Gabriel Ясно и понятно на скринах показал как создать и что из этого примерное получиться.
Спустя 3 минуты, 33 секунды (7.06.2012 - 00:31) razoramus написал(а):
vital И с какова `Х` ты меня посылаешь? Ты мне никто, не хочещь помагать - не заставляю, найдутся люди(точнее уже нашлись), кторые помогут.
Спустя 3 минуты, 52 секунды (7.06.2012 - 00:35) vital написал(а):
Цитата |
Ты сначала в профиль загляни и посмотри сколько мне лет |
Строго пофигу сколько тебе лет, если развитие дальше не пошло. Только школьники считают что их все должны учить.
Цитата |
Я по человечески попросил помоч |
Цитата |
Покажи на моём примере |
Цитата |
Вот ты мне и покажи как сделать правильно! |
Цитата |
Да нихрена я не понял! вы мне напишите пример с последовательным описанием |
Я вижу одни восклицательные знаки = приказы, и ни одной просьбы не говоря уже о слове "пожалуйста".
ПРи этом - у тебя не было даже попытки осознать то, что я написал.
Цитата |
Gabriel Ясно и понятно на скринах показал как создать и что из этого примерное получиться. |
Скажи ему спасибо.
Спустя 50 секунд (7.06.2012 - 00:36) vital написал(а):
Цитата (razoramus @ 6.06.2012 - 23:31) |
vital И с какова `Х` ты меня посылаешь? Ты мне никто, не хочещь помагать - не заставляю, найдутся люди(точнее уже нашлись), кторые помогут. |
с того же, с к-го ты с меня что-то требуешь.
Спустя 16 минут, 52 секунды (7.06.2012 - 00:53) razoramus написал(а):
Gabriel Слушай, а если я создам две таблицы, к примеру в одной разделы, а во второй категории и так же через джоин объединю их. Просто так проще ориентироваться. В этом нет ничего прлохого, в том смысле что на скорость работы с базой это не повлияет?
Спустя 17 минут, 38 секунд (7.06.2012 - 01:10) razoramus написал(а):
vital
Цитата (vital @ 6.06.2012 - 21:35) |
Только школьники считают что их все должны учить. |
Если до тебя ещё не дошло, то объясню что это был всего лишь сарказм, под которым подразумивалось другое, а именно чтобы ты подробнее рассказал то, о чём написал, то есть "свой запрос".
Цитата (vital @ 6.06.2012 - 21:35) |
Gabriel Ясно и понятно на скринах показал как создать и что из этого примерное получиться. |
Цитата (vital @ 6.06.2012 - 21:35) |
Скажи ему спасибо. |
Уже сказал
Цитата (vital @ 6.06.2012 - 21:35) |
Вот ты мне и покажи как сделать правильно! |
прочитай последовательность общения и не вырывай из контекста, т.к. читается другим смыслом.
Цитата (vital @ 6.06.2012 - 21:35) |
Да нихрена я не понял! вы мне напишите пример с последовательным описанием |
Цитата (vital @ 6.06.2012 - 21:35) |
Я вижу одни восклицательные знаки = приказы, и ни одной просьбы не говоря уже о слове "пожалуйста". ПРи этом - у тебя не было даже попытки осознать то, что я написал. |
Я общаюсь так как общаются обычные люди и знаки вежливости употребляю по мере необходимости, когда вижу что это будет к месту. А так как ты отвечаешь(помагаешь) мне в теме, тем самым мимо проходя зашёл и киданул запрос, который мне ничего не намекнул, я таким же жестом и тебе ответил. Понимаю ты бы написал этот запрос и прокоментировал что куда идёт, тогда да, было бы уместно сказать - "Извини, я не совсем допонял, не мог бы ты подсказать что это, а что с этим делать и как правильно запрос составить." Сколько тем не читал, в половине вечно раздувают из мухи слона. Это вы привыкли общаться между собой, такие, которые уже более-менее знают хорошо php, и когда заходит какой-нибудь проходжий и просит помочь не в совсем привычной для вас обстановке, то вы начинаете ему толковать что да ты мол школьник иди подучись у тебя руки из жопы растут да ты говнокодер. Вы не сравнивайте начинающих со своими знаниями.
Спустя 4 минуты, 36 секунд (7.06.2012 - 01:15) Gabriel написал(а):
1) у тебя есть тумбочка с 2мя ящиками в одном носки в другом майки
2) у тебя есть тумбочка с одним ящиком в котором с права носки а с лева майки
Внимание вопрос:
Из какой тумбочки получится достать быстрее?
Вот с 2мя таблицами будет тоже самое(скорее всего).
ЗЫ. ану харе срач разводить.
2) у тебя есть тумбочка с одним ящиком в котором с права носки а с лева майки
Внимание вопрос:
Из какой тумбочки получится достать быстрее?
Вот с 2мя таблицами будет тоже самое(скорее всего).
ЗЫ. ану харе срач разводить.
Спустя 7 минут, 37 секунд (7.06.2012 - 01:22) razoramus написал(а):
Gabriel
Да я вот тоже думаю что лучше то одна, просто всё всемте и всё вперемешку, глаза разбегаются. Пока подумаю, вроди как разделов немного, около 7, да и категорий в общем то около 60, не так уж и много.
Ещё раз Благодарю за помощь. Скрины очень помогли. + в карму поставил)
Да я вот тоже думаю что лучше то одна, просто всё всемте и всё вперемешку, глаза разбегаются. Пока подумаю, вроди как разделов немного, около 7, да и категорий в общем то около 60, не так уж и много.
Ещё раз Благодарю за помощь. Скрины очень помогли. + в карму поставил)
Цитата (razoramus @ 6.06.2012 - 22:10) |
ЗЫ. ану харе срач разводить. |
Спустя 27 минут, 58 секунд (7.06.2012 - 01:50) Gabriel написал(а):
3 колонки чему тут разбегаться? вот когда их 20+ то да.
Это сейчас их мало, а через месяц будешь думать чего же сайт так медленно грузит.
Так что думай.
Это сейчас их мало, а через месяц будешь думать чего же сайт так медленно грузит.
Так что думай.
Спустя 45 минут, 12 секунд (7.06.2012 - 02:36) razoramus написал(а):
Gabriel
Я пока разделил на 2 таблицы и создал запрос..
Вроди как запрос и вывод сработал, НО, выводит он мне таким образом..
Надо как то вывод переделать чтобы оставались только заголовок и под ним его категории..
Что нужно пределать в выводе? Подскажи пожалуйста.
Я пока разделил на 2 таблицы и создал запрос..
function queryCat()
{
$querycat = mysql_query ("
SELECT
`c`.`title` AS `c_title`,
`c`.`url` AS `c_url`,
`s`.`title` AS `s_title`,
`s`.`url` AS `s_url`
FROM `categories` AS `c`
INNER JOIN `section` AS `s`
ON `c`.`parent` = `s`.`id`
")
or die(mysql_error());
if(mysql_num_rows($querycat) > 0)
{
while($rowcat = mysql_fetch_assoc($querycat))
{
echo '
<h4>'.$rowcat['s_title'].'</h4>
<ul>
<li>
<a href="/index.php?'.$rowcat['s_url'].'='.$rowcat['c_url'].'">'.$rowcat['c_title'].'</a>
</li>
</ul>
';
}
}
else
{
echo 'Утеряна связь с базой данных.';
}
}
Вроди как запрос и вывод сработал, НО, выводит он мне таким образом..
Видео
сезон1
Видео
Сезон2
Музыка
ost1
Музыка
ost2
Надо как то вывод переделать чтобы оставались только заголовок и под ним его категории..
Видео
сезон1
Сезон2
Музыка
ost1
ost2
Что нужно пределать в выводе? Подскажи пожалуйста.
Спустя 23 минуты, 4 секунды (7.06.2012 - 02:59) Gabriel написал(а):
уже сплю, мозг требует охлаждения :D
но похоже что ответ кроется в етой линии, ибо не внимательно смотрел скрин.
если ты посмотриш его еще раз то увидиш 4ре линии (в тоем их будет 2)
вот ето закрой в иф, подкатегорию запихни в елс, а над условием для иф подумай (утром желательно) ибо оно банально простое.
но похоже что ответ кроется в етой линии, ибо не внимательно смотрел скрин.
если ты посмотриш его еще раз то увидиш 4ре линии (в тоем их будет 2)
<h4>'.$rowcat['s_title'].'</h4>
вот ето закрой в иф, подкатегорию запихни в елс, а над условием для иф подумай (утром желательно) ибо оно банально простое.
Спустя 18 минут, 50 секунд (7.06.2012 - 03:17) razoramus написал(а):
Нее, надо щас добить его
Спустя 3 минуты, 55 секунд (7.06.2012 - 03:21) razoramus написал(а):
То есть в самом цикле поставить условие?
типо так?
while($rowcat = mysql_fetch_assoc($querycat))
{
if()
{
echo '<h4>'.$rowcat['s_title'].'</h4>';
}
else
{
echo '
<ul>
<li>
<a href="/index.php?'.$rowcat['s_url'].'='.$rowcat['c_url'].'">'.$rowcat['c_title'].'</a>
</li>
</ul>
';
}
}
типо так?
Спустя 18 минут, 39 секунд (7.06.2012 - 03:40) razoramus написал(а):
vital
Цитата (vital @ 6.06.2012 - 21:35) |
с того же, с к-го ты с меня что-то требуешь. |
Где это я с тебя требую написать мне готовый код? Именно ТРЕБУЮ. Я тебя ни в чём не обязывал и сказал, что если нет желания помочь, то проходи мимо и не флуди в теме.
Спустя 9 часов, 52 минуты, 47 секунд (7.06.2012 - 13:33) inpost написал(а):
razoramus
Он тебе ближайшую недельку не ответит...
Он тебе ближайшую недельку не ответит...
Спустя 11 часов, 30 минут, 16 секунд (8.06.2012 - 01:03) waldicom написал(а):
оффтоп он
razoramus, а вот ссылка в твоей подписи на free-lance.ru - это зачем?
оффтоп офф
razoramus, а вот ссылка в твоей подписи на free-lance.ru - это зачем?
оффтоп офф
Спустя 18 часов, 46 минут, 54 секунды (8.06.2012 - 19:50) razoramus написал(а):
waldicom Да просто так
Спустя 1 день, 14 часов, 56 минут, 1 секунда (10.06.2012 - 10:46) razoramus написал(а):
Что то я так и не разобрался. Подскажите кто-нибудь пожалуйста как сделать? А то выводиться не так как надо.
Спустя 10 часов, 51 минута, 44 секунды (10.06.2012 - 21:38) razoramus написал(а):
Походу не дождусь
Спустя 16 минут, 37 секунд (10.06.2012 - 21:54) inpost написал(а):
`id`,`cat`,`subcat`
А вывести:
ORDER BY `cat` - теперь мы сформировали всё по категории. Далее:
А вывести:
ORDER BY `cat` - теперь мы сформировали всё по категории. Далее:
$temp = '';
while() { // наш цикл
if($row['cat'] != $temp) { // если мы перешли к следующей категории!
echo $row['cat'];
$temp = $row['cat'];
}
echo $row['subcat'];
}