![]() |
запрос к базе данных
как мне сделать запрос к базе данных ?
есть поле в таблице с категориями когда продукт в одной категории то выводит её нормально когда в нескольких то не выводит не в одной в несколько добавляет через запятую PHP код:
Зыы.. подозреваю что это просто но не могу правильный запрос к гууглу задать |
слабо понятно, что нужно.
вероятно перед этим запросом нужно найти ид, которые во многих категориях, чтобы их исключить... Цитата:
|
примеры таблиц(ы) в студию!
|
есть модуль вывода 10 последних продуктов
если продукт в нескольких категориях то его не выводит не в одной в каких категориях продукт если он во многих категориях их эти категории записывает в базу через запятую надо чтоб в каждой категории показывался этот продукт если даже он прописан в нескольких и чтоб в каждой категории были продукты только из своей категории вот модуль целиком PHP код:
|
все равно мутно как-то
...AND `category` = '10' // элементы только одной категории 10 ...AND FIND_IN_SET(10, `category`) // все элементы с категорией 10, включая с одной. |
не получилось
Цитата:
есть фильм он относится к нескольким категориям ( триллер, драма, военный, биография ) триллер == категория = 1 драма == категория = 2 военный == категория = 3 биография == категория = 4 при добавлении его в базу в графе категория прописывается следующее ( 1,2,3,4 ) при работе модуля что выше должно выводить 10 последних добавленных фильмов в переменную $san_top10[8] выводится для какой категории выводить последнюю 10 но фильм добавленный сразу в несколько категорий показывается только в первой 1, а в остальных его нет надо чтоб показывал в каждой отдельной категории вот пример как надо не работающего модуля cinem.ru ( ссылку можно \ нужно удолить ) |
Код:
SELECT `id` FROM `post` WHERE FIND_IN_SET(3, `category`) проверьте простым запросом в админ-панели где-нибудь... |
всё работает спасибо это я криворукий не в тот запрос вписал
но когда я прописываю из каких категориях выводить выдаёт ошибку FIND_IN_SET(14,13,2,3,4,5,6,7,8,9,10,11,12,16, `category`) |
rtm там только два параметра допустимы. Если категорий несколько, то на каждую свой FIND_IN_SET. Строку в скрипте можно сформировать.
Код:
.... |
а как составить запрос чтоб в цикле выводило только определённые записи из базы данных ?
пример мне надо чтоб вывело только id=678 \ id=876 \ id=987 |
Код:
... AND `id` IN (678,876,987) ... |
возникли вопросы
1== как сделать переброс из одной базы данных в другую не подряд как это делается обычно а в разнобой ( пример = Обычный вариант Ид=1 ,Ид=2 ,Ид=3 ,Ид=4 ,Ид=5 ,Ид=6 надо чтоб шло както так Ид=6789 ,Ид=877 ,Ид=987655 ,Ид=789 ,Ид=357 ,Ид=1 ,Ид=765 , ) 2== как сделать разброс даты в пределах скажем 2 месяцев дата в базу прописывается date("Y-m-d H:i:s") |
1. непонятно. Пишите скрипт и переносите как угодно.
2. BETWEEN (с датами работает). |
при переносе из одной таблицы в друную надо чтоб не подряд выборка шла а в разнобой
|
вроде ORDER BY RAND() - но имхо непроизводительно.
|
ORDER BY RAND() в полне подойдёт
а вот насчет даты там вроде не то надо чтоб тоже произвольна ( в разнобой ) в пределах определённого промежутка добавлять дату ане выборку делать |
попробуйте это выражение
`date_min` поле с минимальной датой (в виде 2011-10-11 00:00:00) `date_max` поле с максимальной датой Код:
FROM_UNIXTIME( |
а как ету случайную дату в переменную засунуть ?
ато я сделал так PHP код:
|
не, без кавычек, это ж функция FROM_UNIXTIME. А вот там где строка (переменная) - там одинарные кавычки. Косые только в имени поля таблицы.
Если в PHP формируется строка запроса, то лучше конечно дату полностью в PHP сделать... |
чегото до меня не дошло что и куда прописывать
можно показать ? |
Код:
`date` = FROM_UNIXTIME( |
Время: 18:52. |
Время: 18:52.
© OSzone.net 2001-