Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: вопрос про TIMESTAMP и выборку данных из базы
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » вопрос про TIMESTAMP и выборку данных из базы

Страниц (1): [1]
 

1. przrak - 13 Ноября, 2010 - 12:23:09 - перейти к сообщению
Добрый день, помогите пожалуйста разобраться, в общем у меня задача, у меня есть эксель документы, я их парсю в таблицу в базе данных MySQL при помощи PHP. В базе данных есть столбец, в котором отображается дата занесения строки. Я выбрал тип столбца TIMESTAMP (с параметром по умолчанию current_timestamp) при создании базы, все данные в таблицу заносятся на ура, в столбец date с типом TIMESTAMP заносится дата и время (например 2010-11-13 16:20:22). Все вроде бы замечательно. У меня есть задача вывести данные при помощи формы html, к примеру в форме я ввожу 13.11.2010, и чтобы у меня за эту дату вывелись все строки, но этого не происходит, понятно почему в принципе, потому что формат даты не такой как в базе, но блин...не выводит даже если бы я указал 2010-11-13, так как не указано время. Помогите решить проблему.
2. Варяг - 13 Ноября, 2010 - 13:26:52 - перейти к сообщению
przrak, приведите код как Вы делаете форму и как обрабатываете данные из нее.
3. Вездеход - 13 Ноября, 2010 - 13:55:06 - перейти к сообщению
przrak
у тебя идет проблема в форматах даты...

сделай в запросе такое условие:
SELECT * FROM tbl WHERE DATE(`nazvanie_polya`)='2010-11-13'

тут работает sql-функция date, она приводит твою дату (не важно в каком виде она была в базе) к виде ГГГГ-ММ-ДД и ты тогда сможешь нормально сравнивать...
(Добавление)
как дату вида 13.11.2010 привести к виду 2010-11-13 знаешь или сказать? Улыбка
4. przrak - 15 Ноября, 2010 - 05:18:07 - перейти к сообщению
Варяг извините, но Вездеход уже помог Улыбка
Вездеход Спасибо!! Теперь работает, сейчас буду разбираться, как привести дату вида 2010-11-13 к виду 13.11.2010.
(Добавление)
Вездеход
Все! Разобрался с датой. В форме дату пишу как 15.11.2010, затем записываю ее в переменную $date и отсылаю в форму mysql_select.php. В форме mysql_select.php мне нужно привести время к виду 2010-11-15. Для этого я разбираю нашу дату на массив из трех элементов при помощи explode, а затем вывожу его в переменной $date2 предварительно вставив "-" и все работает.
$date1 = explode(".",$date);
$date2 = $date1[2].'-'.$date1[1].'-'.$date1[0];
$result = mysql_query("SELECT * FROM price WHERE DATE(date)='$date2'", $db);

Спасибо, что помогли разобраться.

 

Powered by ExBB FM 1.0 RC1