Подскажите, пожалуйста.
Есть траничка обновления данных (заказов).
Сначала форма выбирает данные
$result = mysql_query("SELECT *, DATE_FORMAT(`time`, '%d-%m-%Y %H:%i:%s') as `formatTime`, DATE_FORMAT(`na_kogda`, '%d-%m-%Y') as `formatTime1` FROM zakazy LIMIT $start, $num");
Как видите - переворачивает дату (formatTime и formatTime1)
и выводит поля формы, одно из которых "На когда"
<td bgcolor="#1C86EE" width="150">На когда:</td><td><input type="text" value="<?php echo $postrow[$i]['formatTime1'] ?>" name="test_na_kogda"/></td>
Перевернуть дату при выводе значений в форму - сделали.
А как теперь заставить форму, при отправке новых данных, переворачивать дату обратно, в формат ГГГГ-ММ-ДД?
Поле даты "на когда" выглядит след. образом.
`na_kogda` date NOT NULL ,
Спасибо.
Спустя 13 минут, 39 секунд (20.01.2012 - 11:42) Winston написал(а):
При обновлении
Или
... SET `na_kogda` = NOW(), ...
Или
... SET `na_kogda` = DATE_FROMAT('".$date."', 'ЗДЕСБ_ФОРМАТ_ДАТЫ'), ...
Спустя 25 минут, 13 секунд (20.01.2012 - 12:07) WisesT написал(а):
а как же быть с na_kogda='{$_POST['test_na_kogda']}',?
овва! да я же запрос на обновление не написал в первом посте
овва! да я же запрос на обновление не написал в первом посте
$query = "UPDATE $table SET gotovnost='{$_POST['test_gotovnost']}', firma='{$_POST['test_firma']}', na_kogda='{$_POST['test_na_kogda']}', adress='{$_POST['test_adress']}', imya='{$_POST['test_imya']}', tel='{$_POST['test_tel']}', ves='{$_POST['test_ves']}', kuda='{$_POST['test_kuda']}', oplata='{$_POST['test_oplata']}', primechaniya='{$_POST['test_primechaniya']}', prinyal='{$_POST['test_prinyal']}', kurier='{$_POST['test_kurier']}', status='{$_POST['test_status']}' WHERE nomer='{$_POST['update']}'";
Спустя 1 минута (20.01.2012 - 12:08) Winston написал(а):
Так, что нельзя так вставить?
... SET `na_kogda` = DATE_FROMAT('".$_POST['test_na_kogda']."', 'ЗДЕСБ_ФОРМАТ_ДАТЫ'), ...
Спустя 2 минуты, 34 секунды (20.01.2012 - 12:11) WisesT написал(а):
FUNCTION dimex.DATE_FROMAT does not exist
вот что выдало, при запросе в виде
вот что выдало, при запросе в виде
$query = "UPDATE $table SET gotovnost='{$_POST['test_gotovnost']}', firma='{$_POST['test_firma']}', `na_kogda` = DATE_FROMAT('".$_POST['test_na_kogda']."', '%Y-%m-%d'), adress='{$_POST['test_adress']}', imya='{$_POST['test_imya']}', tel='{$_POST['test_tel']}', ves='{$_POST['test_ves']}', kuda='{$_POST['test_kuda']}', oplata='{$_POST['test_oplata']}', primechaniya='{$_POST['test_primechaniya']}', prinyal='{$_POST['test_prinyal']}', kurier='{$_POST['test_kurier']}', status='{$_POST['test_status']}' WHERE nomer='{$_POST['update']}'";
Спустя 4 минуты, 6 секунд (20.01.2012 - 12:15) Winston написал(а):
Цитата (WisesT @ 20.01.2012 - 11:11) |
FUNCTION dimex.DATE_FROMAT does not exist |
Упс... ошибся в написании... Вбей ошибку в гугл и увиидшь как правильно называется ф-я
Еще так можно
$na_kogda = date('Y-m-d h:i:s', strtotime($_POST['test_na_kogda']));
SET `na_kogda` = '".$na_kogda."', ...
Спустя 3 минуты, 25 секунд (20.01.2012 - 12:18) WisesT написал(а):
С первым вариантом. ошибку увидел) мой фэйл)
но всеравно бьет ошибку
Truncated incorrect datetime value: '19-02-2012'
но всеравно бьет ошибку
Truncated incorrect datetime value: '19-02-2012'
Спустя 7 минут, 1 секунда (20.01.2012 - 12:25) WisesT написал(а):
второй вариант сработал без проблем. спс
Спустя 39 секунд (20.01.2012 - 12:26) Winston написал(а):
А так?
... SET `na_kogda` = STR_TO_DATE('".$_POST['test_na_kogda']."', 'ЗДЕСЬ_ФОРМАТ_ДАТЫ'), ...
Спустя 37 минут, 58 секунд (20.01.2012 - 13:04) WisesT написал(а):
а как бы еще вот этот переделать?
это посик по бд.
по тому же принципу можно?
это посик по бд.
$query = "SELECT *, DATE_FORMAT(`time`, '%d-%m-%Y %H:%i:%s') as `formatTime`, DATE_FORMAT(`na_kogda`, '%d-%m-%Y') as `formatTime1` FROM zakazy WHERE UPPER(nomer) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(time) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(gotovnost) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(firma) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(adress) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(imya) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(tel) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(ves) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(kuda) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(oplata) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(na_kogda) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(primechaniya) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(prinyal) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(kurier) LIKE '%".strtoupper($_POST['help'])."%'
or UPPER(status) LIKE '%".strtoupper($_POST['help'])."%'";
$na_kogda = date('Y-m-d h:i:s', strtotime($_POST['test_na_kogda']));
SET `na_kogda` = '".$na_kogda."', ...
по тому же принципу можно?
Спустя 27 минут, 41 секунда (20.01.2012 - 13:31) WisesT написал(а):
что-то не получается
Спустя 5 часов, 49 минут, 7 секунд (20.01.2012 - 19:21) UnWind написал(а):
WisesT
У тебя строгие критерии для поиска ? Т.е. тебе нужно что бы искало по одному параметру, по одному не нашел, то по другому, верно ?
Или по совокупности параметров ?
У тебя строгие критерии для поиска ? Т.е. тебе нужно что бы искало по одному параметру, по одному не нашел, то по другому, верно ?
Или по совокупности параметров ?
Спустя 5 минут, 10 секунд (20.01.2012 - 19:26) UnWind написал(а):
Если ты хочешь заменить LIKE на стандартную операцию сравнения - то без проблем, так можно. Но OR ставить прийдется все равно. Это означает в данном случае, что если поиск не дал результатов по первому критерию, то будет осуществляться по второму до конца, либо пока результат не будет достигнут, либо не будет равняться 0 по всем критериям.
Функция UPPER - возвращает значение в виде прописных букв.
Функция UPPER - возвращает значение в виде прописных букв.
Спустя 29 минут, 21 секунда (20.01.2012 - 19:55) UnWind написал(а):
Вообще если таблица типа MYISAM, то можно использовать такой вот запрос после WHERE:
Если таблица не типа MyISAM, то ее можно переделать простым запросом:
Сам запрос - ищет схожий результат во всех столбцах, что думаю и нужно было.
P.S.:> Только запрос под себя переделай, я не проверял на правильность имена полей. Можно и плюсик поставить B) (Если помогло конечно)
WHERE MATCH UPPER(time,gotovnost, firma,adress,imya,tel,ves,kuda,oplata,na_logda,primechaniya,prinyal,status,kurier)
AGAINST ('Что мы ищем - текст/переменная' IN BOOLEAN MODE);
Если таблица не типа MyISAM, то ее можно переделать простым запросом:
ALTER TABLE таблица ENGINE = MYISAM;
Сам запрос - ищет схожий результат во всех столбцах, что думаю и нужно было.
P.S.:> Только запрос под себя переделай, я не проверял на правильность имена полей. Можно и плюсик поставить B) (Если помогло конечно)
Спустя 2 дня, 14 часов, 58 минут, 28 секунд (23.01.2012 - 10:54) WisesT написал(а):
Секунду. Только на работу приплыл.
Сначала кофе, новости, сплетни... потом уже работа;)
Сначала кофе, новости, сплетни... потом уже работа;)
Спустя 2 часа, 53 минуты, 55 секунд (23.01.2012 - 13:48) neadekvat написал(а):
UnWind, что за фигня? Зачем полнотекстовой поиск? Зачем менять что-то на MYISAM ради этого?
К слову, при поиске слова обычно приводят к нижнему регистру, а не к верхнему.
К слову, при поиске слова обычно приводят к нижнему регистру, а не к верхнему.
Спустя 2 минуты, 55 секунд (23.01.2012 - 13:50) UnWind написал(а):
neadekvat
Ну а смысл описывать такое большое количество стоблцов, если все это можно сделать проще и запрос понятней.
Ну а смысл описывать такое большое количество стоблцов, если все это можно сделать проще и запрос понятней.
Спустя 9 минут, 9 секунд (23.01.2012 - 14:00) neadekvat написал(а):
Цитата (UnWind @ 23.01.2012 - 14:50) |
Ну а смысл описывать такое большое количество стоблцов, если все это можно сделать проще и запрос понятней. |
И, насколько я помню, тяжеловеснее.
Спустя 1 минута, 47 секунд (23.01.2012 - 14:01) UnWind написал(а):
Цитата |
И, насколько я помню, тяжеловеснее. |
Не на много. Он быстро обрабатывается.