[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массовое изменение данных полей - переворачивание
drey19061984
подскажите пожалуйста как сделать? вопрос такой в БД хранятся новости сайта, есть поле data, в ней хранятся даты новостей в виде - 03.05.16 (дата/месяц/год), с помощью кода переворачиваю строку в - год/месяц/дата - сам понимаю что в коде ошибка (не хватает цикла прохода по БД) - но я сам только учусь и не могу логически понять где он должен быть, т.к. при выполнении php-скрипта он берет дату из первой строки данных и переписывает дату всем новостям а не одной отдельной, а надо чтоб брал дату каждой новости и переворачивал, подскажите если можно с кодом как это сделать??? вот сам код

<?PHP  
$select_query = "SELECT data FROM NEWS"; // Запуск запроса $result = mysql_query($select_query); if ($result) { $row = mysql_fetch_array ($result);

$data = $row['data']; $array_string = explode('.', $data); $Mass = array_reverse($array_string); $string = implode('.', $Mass);

$select_query = "UPDATE NEWS SET data='$string'"; // Запуск запроса $result = mysql_query($select_query) or die('Ошибка!!!)'); if ($result) { $row = mysql_fetch_array ($result); $data = $row['data']; }}

?>
SerginhoLD
дату в базе хранить нужно в поле типа дата, а не в таком виде "03.05.16"

а ошибка у тебя в update запросе
UPDATE NEWS SET data='$string'

всем строкам присваивается одна и та же дата, чтобы определенной строке поменять, нужно использовать идентификатор строки через условие WHERE
UPDATE NEWS SET `data`='$string' WHERE `id`='{$row["id"]}'


еще есть функция STR_TO_DATE, через нее можно даты к нормальному виду привести одним запросом

_____________
"internet explorer всех правильней отображает страницы" ©
Игорь_Vasinsky
1 data - данные date - дата
2 хранить нужно дату в одном формате datetime - формат 2016-03-19 22:33:19 или date

при выводе можешь выводит их как угодно
либо в sql запросе - DATE_FORMAT(date,format) http://www.w3schools.com/sql/func_date_format.asp
либо в php http://php.net/manual/ru/datetime.format.php

формат поля с датой в бд очень важен - сортировка по дате и тд., если тебя формат varchar() - ты много горя хапнешь потом

в твоём случае - я бы сначала прогнал по таблице такой скрипт

update mytable set `date` = DATE_FORMAT(STR_TO_DATE(`date`), '%Y-%m-%d %H:%i:%s')


а потом бы конвертнул поле в нормальный формат

alter table mytable modify `date` datetime


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
drey19061984
всем спасибо мне уже помогли, чувствую себя идиотом - ударился в ПХП и забыл про SQL, вот что подсказали, я б никогда не додумался(


Эту операцию можно выполнить одним SQL-запросом

UPDATE NEWS
SET data = CONCAT(SUBSTR(data, 7, 2), '.', SUBSTR(data, 4, 2), '.', SUBSTR(data, 1, 2));
Игорь_Vasinsky
drey19061984
ты с датой как с датой работать не сможешь при таком раскладе.

вот понадобиться сортировка или вывод данных за период - и всё.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sergeiss
Цитата (Игорь_Vasinsky @ 13.03.2016 - 00:20)
вот понадобится сортировка или вывод данных за период - и всё.

Как это ни печально, но эти твои слова вряд ли будут услышаны. Ведь ему же "уже помогли". Готов спорить, что он уже "решил задачу", по его мнению.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Игорь_Vasinsky
sergeissя 2 раза пытался. потом поймёт.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.