Нужно только использовать floor() вместо ceil(), чтобы округлить в меньшую сторону. Получится кол-во прошедших полных интервалов. Решение поправил.
Однако, решение выше даст ответ для времени в пределах отрезка [begin, end].
Если вам надо выводить кол-во прошедших интервалов на те сутки, для которых задано event_date, нужно немного поменять CASE:
SELECT t.event_date, -- атрибут таблицы типа datetime, для которого определяем интервал, выведен для того, чтобы наблюдать за процессом отладки
case -- SQL-конструкция вида "case when ... then ... else ... end", с помощью которой можно выводить не только конкретное значение атрибута, но и задавать условие, при котором конечное значение результата будет вычисляться по-разному в пределах одной выбранной записи.
when TIME_TO_SEC(t.event_date) > inter.begin AND TIME_TO_SEC(t.event_date) < inter.end -- если t.event_date, выраженное в суточных секундах, находится в периоде (inter.begin, inter.end), также выраженных в суточных секундах,...
then floor((TIME_TO_SEC(t.event_date) - inter.begin) / inter.width) -- ... то вычисляем количество полных интервалов
when TIME_TO_SEC(t.event_date) <= inter.begin -- если еще рано до периода подсчета интервалов, ...
then 0 -- то, по текущей дате t.event_date ноль интервалов
when TIME_TO_SEC(t.event_date) >= inter.end -- если время больше или равно окончанию периода, ...
then floor((inter.end - inter.begin) / inter.width) -- ...то выдаем кол-во интервалов
else null -- по идее, сюда никогда не попадем, а вдруг?
end as full_interval_number -- кол-во прошедших полных интервалов, начинается с 0
FROM table t, -- ваша таблица
(select TIME_TO_SEC('09:00:00') as begin, -- начало дневного периода
TIME_TO_SEC('18:00:00') as end, -- конец дневного периода
TIME_TO_SEC('00:15:00') as width -- ширина интервала
) inter -- параметрический подзапрос, все настраиваемые константы в одном месте - удобно при отладке
Ну так, кто же вставляет where между таблицами и подзапросами.
Ему место после них:
SELECT *
from (SELECT
servers.id,
servers.game,
servers.votes,
@n := @n + 1 AS rank
FROM servers , (SELECT @n := 0) r
WHERE game like 'minecraft'
ORDER BY servers.votes DESC
) abs where id = 3
Только учтите, что ранжирование в этом случае будет среди записей game like 'minecraft' , а не среди всех записей. Хотите по-другому, выносите условие во внешний уровень.
Сказать про производительность не могу, так как мало работаю с mySQL.
Но могу предположить, что будут ранжироваться все записи, а потом выберутся те, которые подходят по внешнему условию.
Я не уверен, что оптимизатор в mySQL хорошим окажется, и поймет, что во внешнем условии есть уникальный идентификатор, чтобы прекратить ранжирование, если наткнется на запись с подходящим условием.
Отладчик, подсказывает, что делать.
Дайте псевдоним внешней обертке select * from () abc
и будет счастье.
Эту задачу я решал в режиме бумажного теста, не имеет смысл подробно разбирать отладку.
Был не прав, так как я не юрист, но попробую навести на решение.
Товар можно вернуть иностранному продавцу с возвратом таможенных издержек, если соблюсти условия реэкспорта.
Вот небольшая статья по этому поводу.
Опять же, чтобы такая процедура состоялась, возможно, понадобиться экспертиза товара и полная лояльность продавца отвечать на любые задокументированные несоответствия.
В вашем случае, как раз упущена возможность составить акт о несоответствии (стоимость содержимого может и оказалась примерно одной и той же, но вес?), чтобы получить основание для возврата.
PS: Ссылка ведет на подписку (при первом переходе статья была доступна), поэтому оставлю статью в виде файла.
Чтобы провести отладку query.php, замените в нем все POST на GET и шлите в адресной строке браузера.
../pages/query.php?login=qwerty&password=qwerty
В query.php делаете эхо после каждой mysqli_ функции, и он вам поделиться что случилось.
echo mysqli_error ( $link );
Изучение ajax и jquery отложите в сторону, клиентский скрипт вам только будет мешать, до тех пор пока не будете уверены в том, что творится на стороне серверного скрипта.
Да, забыл указать, что для всей таблицы нужно свойство table-layout: fixed; при этом обязательно указывать ширину, иначе такое указание не имеет смысла, как писал пользователь Татьяна С.
В CSS много всяких зависимостей свойств, мало наобум подставить одно свойство для контейнера, нужно убедиться, что у родительского контейнера должны еще кое-какие свойства, что косвенно влияют на отображение дочерних элементов.
Однако, решение выше даст ответ для времени в пределах отрезка [begin, end].
Если вам надо выводить кол-во прошедших интервалов на те сутки, для которых задано event_date, нужно немного поменять CASE: