Мне кажется, что вы сохраняете даты и время в текстовом поле / в varchar и пытаетесь использовать оператор BETWEEN, который работает только с полями даты / числа.
Запустите этот запрос: SHOW CREATETABLE calendar_events
;
И опубликуйте результаты для нас, чтобы мы могли увидеть структуру вашей таблицы.
Также я должен отметить, что размещение данных $ _POST напрямую вSQL-запрос очень плохая идея при любых обстоятельствах.Вот так вы подвергаетесь атакам SQL-инъекций и подвергаете риску всю свою базу данных.
Вы должны использовать вспомогательный класс или, по крайней мере, вызвать mysql_escape_string или использовать метод escape для mysqli вокруг каждого элемента данных.Также убедитесь, что вы заключили параметры в запрос в одинарные кавычки.Вы также должны заключить имена таблиц / столбцов в обратные черты (`).Несмотря на то, что они технически необязательны, это помогает при чтении запросов и позволяет избежать ошибок, вызванных конфликтом данных / полей.
Например, если я отправил «event_date» в качестве данных для $ _POST ['event_date']MySQL будет сбит с толку, поскольку он будет интерпретировать эту часть запроса как event_date
= event_date
, что, конечно, будет всегда истинно.
При правильном использовании одинарных кавычек и обратных кавычек: 'event_date '= event_date
Теперь MySQL знает, что первое вхождение говорит ему искать случаи, когда значение event_date присутствует в столбце event_date таблицы.
В любом случае, отправьте обратно структуру таблицыпоместите ваши кавычки в одиночку / обратные кавычки, и я думаю, что нам будет гораздо легче помочь вам.