Просьба помочь написать запрос или несколько запросов.
Есть одна таблица со школами:
Каждая школа может иметь принадлежность к какой-то сети.
Необходимо выбирать по 10 штук на странице таким образом, чтоб если найдена хотя бы одна школа какой-то сети, то были бы выбраны все школы этой сети (network_id=1), но они не считались бы в те 10, которые указаны в limit 10.
Только первая школа одной сети входит в десять, остальные идут как бонус. А network_id=0 считаются как уникальные школы и они не должны ни с кем группироваться.
В итоге результатом запроса может быть 15 записей, 8 из которых имеют network_id=0, 4 с network_id=1, 3 с network_id=2
Расшифровка limit 10 в данном варианте это 8 с network_id=0 , одна с network_id=1 и одна network_id=2, остальные как бонус.
Сортировка по заголовку.
И второй момент, если будет вторая страница (limit 10, 10), то если на первой странице уже выбирались школы с network_id>0 (например с network_id=1), то их не должно выбрать т.к. они все были отображены на первой странице.
P.S. в самом начале я писал "Необходимо выбирать по 10 штук на странице", а чуть ниже расписал в примере 15 штук. Это не ошибка, на странице будет 10 блоков, только в блоках с network_id>0 будут кнопки для отображения ВСЕХ школ из одной сети в этом блоке, в блоке будет меняться картинка и название. А для школ с network_id=0 в блоке всегда статически будет одна школа.
Столкнулся с необъяснимой проблемой:
если устанавливать куке конкретное статическое значение, то все ок, а если через переменную, то кука не устанавливается
Вот так работает:
$time=time()+60*60*24*3;
setcookie("banner", 177, $time, "/", $_SERVER["HTTP_HOST"]);
А вот так уже не работает
$id=180;
setcookie("banner", $id, $time, "/", $_SERVER["HTTP_HOST"]);
Если во второй строке $id заменю на само число, то кука станет=180
Есть две таблицы
1) Таблица хранит programm_id программы и filter_value значение фильтра
programm_id | filter_value
1 | 8
1 | 9
1 | 11
2 | 9
2 | 11
2 | 12
2) Таблица хранит фильтры filter_id и их значения filter_value
filter_id | filter_value
filter_id=1 - пол
filter_id=2 - возраст
filter_value=8 - мальчик
filter_value=9 - девочка
filter_value=11 - 5-10 лет
filter_value=12 - 11-15 лет
1 | 8
1 | 9
2 | 11
2 | 12
Как выбрать все программы, если на сайте выбраны фильтры со значениями filter_value
8, 9, 11, 12 должно выбрать обе программы 1 и 2
или
8, 11, 12 должно выбрать программы 1
Т.е. суть такая, что есть родительский filter_id и если выбрано хотя бы одно его значение, то это 1
Я пробовал так, но лли COUNT не по тому полю, или группировать по другому полю
SELECT `t1`.`programm_id`, count(`t2`.`filter_id`) AS cnt FROM `t_programm_filter` `t1`, `t_filters` `t2`
WHERE `t1`.`filter_value`=`t2`.`filter_value` AND t1.filter_value IN (8,9,11,12) GROUP BY `t2`.`filter_id` HAVING cnt>=2
P.S. cnt тут 2 и более, потому что в примере выбирается хотя бы одно значение каждого из двух фильтров
Не получается средствами CSS выделить нужным стилем 2й по счету класс active
пробую так
.main .active:nth-of-type(2){
opacity:0.3;
}
Оно по какой то причине выделяет просто второй див, в данном примере, с классом .second.
Знаю, что nth-of-type указывает на элемент определенного типа, в моем случае div, но я же еще указываю и имя класса
Насколько я понимаю, тут будут выбираться только данные соответствующие каждой отдельной строке, но не сможет найти результирующую сумму для отрезка 06.07.2016 по 12.07.2016.
Т.е. если все 7 дней попадают в первый отрезок с 01.07.2016 по 09.07.2016 и сумма подходит, то тогда данные будут найдены. А если нужная сумма будет формироваться из двух строк (1й и 2й), тогда нет. Правильно я понял?
WHERE(price BETWEEN 1000 AND 1500 AND currency='USD')AND date_begin >='2016-07-06'AND date_end <='2016-07-21'
Для поиска эквивалентных значений в других валютах добавьте в скобки условия по другим сконвертированным валютам. Или добавьте ещё одно поле с ценой в какой-то одной валюте.
Дело в том, что не задана сумма за весь промежуток времени, а есть только стоимость за день проживания, т.е. я так понимаю надо использовать SUM
Просьба помочь создать запрос для следующей задачи.
В БД есть строки со следующими полями:
id | hotel_id | date_begin | date_end | price | currency
И, например, значениями
Пользователь вводит в поисковой форме разброс дат с 05.07.2016 по 21.07.2016
Количество дней: 7
и сумму за проживания от 1000 $ до 1500 $
В результате надо найти все отрезки дат подходящие под эти условия с подсчитанной суммой.
Например, первый найденный отрезок будет: с 06.07.2016 по 12.07.2016 и стоимостью проживания 1000 $