Поиск по диапазону

phpusershik

Using PHP
Поиск по диапазону

У меня поиск по дате был только по точно выбранной дате т.е. в одной стр. выбирался $day, $mon, $yer и передавался другой странице где он сравнивался и выбирался вот так:

$sql = "SELECT * FROM test WHERE data LIKE '$day/$mon/$yer' Order BY data";

а тепер хочу зделать по диапазону, то есть с первой страницы на вторую передаются перем:

$day1, $mon1, $yer1, $day2, $mon2, $yer2
а как в этом случае использовать WHERE и LIKE ?
 

phpusershik

Using PHP
$sql = "SELECT * FROM test WHERE data LIKE '$day1<=$day2 /$mon1<=$mon2/$yer1<=$yer2' Order BY data";

Так что-ли?
 

phpusershik

Using PHP
Но потому-что там дата записывается вот-так 30/05/05.
А на какую советуеш поменять и какая будет выгода?
 

phpusershik

Using PHP
Ну и что прочитал, но разве с типом varchar не получится зделать выборка по указаному диапазону. :)

Вроде алгоритм ясно мне, но как практически поставить под вопросом, то есть есть два дня, два месяца (цифры), и два года, и они должны сравниватся друг с другом соответственно и соответсвующий результат диапазона извлекатся из поля таблицы.....

-~{}~ 30.05.05 19:35:

Пишу и так:

$sql = "SELECT * FROM test WHERE data LIKE '$day1<=$day2 /$mon1<=$mon2/$yer1<=$yer2' Order BY data";

и так:

$sql = "SELECT * FROM test WHERE data LIKE '$day1 < $day2 /$mon1 < $mon2/$yer1 < $yer2' Order BY data";

Не помогает,

-~{}~ 30.05.05 19:47:

Автор оригинала: Tor
>= and <=
А где это сравнение применять в WHERE или в LIKE ?
 

phpusershik

Using PHP
Автор оригинала: Фанат
нет, не получится
Значит всё таки придётся поменять тип поля, а хорошо после того как я поменял у меня записи идут вот так 30/05/05 и т.п. где применять потому-что разобратся со статьи на ссылке никак не получится потому-что пользователям срочно надо поиск по диапазону даты.
 

Фанат

oncle terrible
Команда форума
после того, как ты поменяешь тип поля, у тебя записи НЕ БУДУТ идти вот так 30/05/05
 

phpusershik

Using PHP
Автор оригинала: Фанат
после того, как ты поменяешь тип поля, у тебя записи НЕ БУДУТ идти вот так 30/05/05
Да точно поменял и поставил DATE они вот в таком виде 2024-01-05. А нельзя что-ли что-бы был вот так DD-MM-YYYY?
 

Фанат

oncle terrible
Команда форума
при выводе - можно

-~{}~ 30.05.05 20:20:

поменял ты, кстати, совершенно зря.
сначала надо было привести к правильному формату
 

phpusershik

Using PHP
Нет у меня есть BackUp я уже вернул обратно :) а как автоматически привести к правильному формату? а потом уже поменять тип?
 

Фанат

oncle terrible
Команда форума
ну, если у тебя есть минимальные навыки программирования, то поменять не составит для тебя труда.
пишешь запрос update, в котором с помощью функций substring и concat меняешь dd/mm/yyyy на yyyy-mm-dd
 

phpusershik

Using PHP
а сможеш ли ссылочку дать что-бы я посмотрел как применять substring и concat? А потом этот запрос как я понял я должен запустит в phpmyadmin-e и без указания WHERE он автоматически поменяет на всех date dd/mm/yyyy на dd-mm-yyy?
Но смотри он поменяет на dd-mm-yyy а для типа поля DATE надо в таком порядке 'YYYY-MM-DD' а дальше как будет?
 
Сверху