id сортировка имя тип
3 10 кат1 0
4 20 кат2 0
6 11 подкатегория11 10
7 12 подкатегория12 10
8 21 Подкатегория21 20
....
если "тип" =0 значит это категория, а если нет, то тип - подкатегория той категории, чья сортировка равна этому "тип"
3апрос типа
mysql_query("select * from ".$db->prefix."table WHERE name LIKE '%$text_to_search%' AND ???????? ORDER BY id DESC");
???????? - вот тут и маюсь.
мне нужно сделать поиск так. если я выбираю для поиска какую то подкатегорию то ищет только по ней, а если я выбираю всю категорию то поиск ищет по всем подкатегориям, которые принадлежат этой категории .
категории отображаются на странице через while (sort by номер_для_сортировки) и <select>. Передаются через POST.
подскажите плиз как это сделать...
Спустя 18 минут, 26 секунд (2.12.2009 - 20:23) waldicom написал(а):
А где поле, которое указывает, кто у категории родитель?
Спустя 36 минут, 25 секунд (2.12.2009 - 21:00) Sash'ok написал(а):
waldicom Точна! не было такой...
Спустя 16 часов, 2 минуты, 37 секунд (3.12.2009 - 13:02) Sash'ok написал(а):
вчера добавил, сделал чтоб располагались как нада...
а поиск все равно не работает. ищет тольо по 1 категрии. или вообще не ищет
а поиск все равно не работает. ищет тольо по 1 категрии. или вообще не ищет
Спустя 16 минут, 11 секунд (3.12.2009 - 13:18) waldicom написал(а):
покажи структуру и запрос
Спустя 18 минут, 47 секунд (3.12.2009 - 13:37) Sash'ok написал(а):
id cat_sort cat_name subcat_parent
$cat_id = $_GET['cat'];
а вот с запросом у меня проблемы.
$cat_id = $_GET['cat'];
$ss = $db->fetch_assoc($db->query("SELECT * FROM ".$db->prefix."magnets_cats WHERE id=".$cat_id.""));// выбираю ту строку где наш id
$sss = $db->query("SELECT * FROM ".$db->prefix."magnets_cats WHERE subcat_parent=".$ss['cat_sort']."");// выбираю строки где цифра в тип равна их сортировке
а вот с запросом у меня проблемы.
mysql_query("select * from ".$db->prefix."magnets WHERE magnet_name LIKE '%$text_to_search%' AND magnet_cat=[id тех строк у которых subcat_parent=".$ss['cat_sort']."] ORDER BY id DESC");
Цитата |
[id тех строк у которых subcat_parent=".$ss['cat_sort']."] |
вот тут проблема. я не знаю как задать поиск по нескольким строкам сразу
Спустя 1 час, 4 минуты, 35 секунд (3.12.2009 - 14:42) Sash'ok написал(а):
ну вот скажем нужно выполнить поиск по строкам с id 6,7,8.
запрос
будет выполняться.
а как сделать запрос если id у нас и их количество не постоянны?
или такой запрос неправильный?
запрос
mysql_query("select * from ".$db->prefix."table WHERE name LIKE '%$text_to_search%' AND id=6 OR id=7 OR id=8 ORDER BY id DESC");
будет выполняться.
а как сделать запрос если id у нас и их количество не постоянны?
или такой запрос неправильный?
Спустя 1 час, 43 минуты, 38 секунд (3.12.2009 - 16:25) Raskolnikoff написал(а):
Ваш конечный запрос будет выглядеть примерно так
"SELECT * from ".$db->prefix."magnets WHERE magnet_name LIKE '%$text_to_search%' AND magnet_cat IN (SELECT id FROM ".$db->prefix."magnets_cats WHERE subcat_parent=".$ss['cat_sort'].")"
Спустя 1 час, 30 минут, 55 секунд (3.12.2009 - 17:56) Sash'ok написал(а):
Raskolnikoff спасибо огромное. Все работает
Спустя 23 часа, 54 минуты, 40 секунд (4.12.2009 - 17:51) Sash'ok написал(а):
подскажите плиз еще как сделать чтобы поиск выполнялся по нескольким параметрам но в одной категории
например
но проблема в том что он ищет не по одной категориям а по всем
видимо OR тут нельзя исползовать. или как то по другому?
например
$result = mysql_query("
SELECT *
FROM ".$db->prefix."magnets
WHERE magnet_description
LIKE '%$text_to_search%'
OR magnet_name
LIKE '%$text_to_search%'
AND magnet_cat=".$cat_id."
ORDER BY id
DESC
");
но проблема в том что он ищет не по одной категориям а по всем
видимо OR тут нельзя исползовать. или как то по другому?
Спустя 22 минуты, 20 секунд (4.12.2009 - 18:13) sergeiss написал(а):
Скобочки используй для формирования логики.
В твоем случае
В твоем случае
where (... LIKE '...' or ... LIKE '....') and ...
Спустя 15 минут, 15 секунд (4.12.2009 - 18:29) Sash'ok написал(а):
sergeiss, точна! робит спс!