[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите пожалуйста с запросом в БД
Serg_php
Уже два часа думаю, не могу придумать как реализовать выпадающее меню с использованием mysql. Меню то я сделал, все работает, но как правильно создать запрос, что бы выводило только по одному пункту меню? Вообщем вот есть код
div class="left_menu">
<
div id="breac"></div>
<
div id="categories_all">
<?php
$res = mysql_query ("SELECT * FROM categories_product,parent_category WHERE categories_product.id=parent_category.id_categories");

while ($write = mysql_fetch_assoc ($res)) {
echo "<ul class=\"list\"><li id=".$write['id']."><a id=".$write['id']." href=\"#\">".$write['title'].'</a> '."<ul class=\"categories\"><li><a href=\"#\">".$write['title_catg']."</a></li></ul></li></ul><hr />";
}
?>
</div>
</
div>

все работает, но выводит сколько раз один и тот же пункт, сколько получаеться под категорий данной категории(( parent_category - это под категория главной категории. Как мне сделать нормальное меню? Как отсортировать данные. Может LIMIT, но тоже не катит((



Спустя 10 минут, 38 секунд (11.10.2011 - 11:32) divine266 написал(а):
Serg_php
загони все в массив при запросе, а потом уже циклом дергай из этого массива как надо wink.gif

Спустя 3 минуты, 17 секунд (11.10.2011 - 11:35) Serg_php написал(а):
ТОчно, это идея) Спасибо, попробую)

Спустя 13 минут, 19 секунд (11.10.2011 - 11:48) RCuPeR написал(а):
Прошу прощения, что втиснулся. Не хочу создавать новую тему.

SELECT * FROM tree WHERE `level` = 1 AND `level` = 2

Позор на мою седую голову. Неправильно составлен запрос. Нужно вытащить все строки в которых поле level равен 1 и 2.
Что не правильно ?

Спустя 4 минуты, 53 секунды (11.10.2011 - 11:53) Serg_php написал(а):
вот попробуй так
SELECT * FROM tree WHERE level = '1' AND level = '2'
или даже просто без кавычек, не помню. Ну точно знаю что
`level`
не нужно брать в кавычки

Спустя 3 минуты, 14 секунд (11.10.2011 - 11:57) RCuPeR написал(а):
MySQL вернула пустой результат (т.е. ноль строк). ( запрос занял 0.0006 сек. )
SELECT *
FROM tree
WHERE level = '1'
AND level = '2'
LIMIT 0 , 30

Спустя 2 минуты, 29 секунд (11.10.2011 - 11:59) Serg_php написал(а):
А без кавычек не катит? Так он считает это строковым типом, а без кавычек попробуй

Спустя 2 минуты, 11 секунд (11.10.2011 - 12:01) divine266 написал(а):
RCuPeR

попробуй так
SELECT * FROM tree WHERE (level = 1 AND level = 2)

Спустя 2 минуты, 56 секунд (11.10.2011 - 12:04) RCuPeR написал(а):
Та же фигня в обеих случаях mad.gif

Спустя 43 секунды (11.10.2011 - 12:05) RCuPeR написал(а):
--
-- Структура таблицы `tree`
--

CREATE TABLE IF NOT EXISTS `tree` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`left_key` int(10) NOT NULL,
`right_key` int(10) NOT NULL,
`level` int(10) NOT NULL,
`name_serial` varchar(200) NOT NULL,
`id_serial` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `key` (`left_key`,`right_key`,`level`,`name_serial`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=37 ;


Спустя 6 минут, 32 секунды (11.10.2011 - 12:11) divine266 написал(а):
SELECT * FROM `tree` WHERE level = 1 OR level = 2

вот так ;) чет затупил

Спустя 3 минуты, 14 секунд (11.10.2011 - 12:15) RCuPeR написал(а):
Точно ! Спасибо большое ! +1 в карму.

Спустя 3 минуты, 18 секунд (11.10.2011 - 12:18) Игорь_Vasinsky написал(а):
цифры в кавычки не обрамляются

Цитата
в которых поле level равен 1 и 2


"и" или "или"

если "и" - то OR не катит.

Спустя 3 минуты, 28 секунд (11.10.2011 - 12:21) divine266 написал(а):
Игорь_Vasinsky

запрос идет по одной колонке, то есть надо выбрать все строки с 1 и 2 то тут OR над ph34r.gif

Спустя 6 минут, 17 секунд (11.10.2011 - 12:28) RCuPeR написал(а):
divine266, прав. Нужно было "или".

Спустя 5 минут, 44 секунды (11.10.2011 - 12:33) Игорь_Vasinsky написал(а):
divine266
Ты блин или формулируешь вопрос не правильно, или решаешь его:

Цитата
ь все строки с 1 и 2 то тут OR над


Если нужно и 1 и 2 - то это не OR это AND

А если надо выбрать все колонки сожержащие или 1 или 2 - то OR

Спустя 1 час, 37 секунд (11.10.2011 - 13:34) m4a1fox написал(а):
Не бесите тигра smile.gif Покусает smile.gif

Спустя 2 часа, 54 минуты, 55 секунд (11.10.2011 - 16:29) Игорь_Vasinsky написал(а):
это барсёнок wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.