Приветствую всех форумчан! Заранее приношу извинения! Вы можете меня послать штудировать соответствующую литературу, но вдруг найдётся тот, кто сможет мне написать как это сделать, если сам сталкивался с этим. Есть БД | id | name | coords | lat | ltd | ---------------------------------------------| | 1 | name1 | 23.22;10.11 | 00 | 00 | <---- 23 | 10 | (пример)после преобразования substr | 2 | name2 | 18.22;13.11 | 00 | 00 | <---- 18 | 13 | (пример) после преобразования substr | 3 | name3 | ****;***** | 00 | 00 | | .. | name.. | ****;***** | 00 | 00 | | n | namen | ****;***** | 00 | 00 | ------------------------------------------------------------ Что нужно: Нужно в каждую строку ( по lat и ltd) внести запись. Запись не простая. Она берется из столбца coords каждой строки, преобразуется и вносится в lat и ltd этой же строки. И нужно я так понимаю замутить цикл который всё это будет делать. Хочу заметить что за преобразование, это изменение coords через substr. Тоесть например, я беру coords у id=1, изменяю его и записываю в lat и ltd этого же самого id=1. Дальше также но с id=2 и так до конца. Суть преобразования, мне нужно отфилитровать coords, без знака ;... тоесть разбить его на два значения. Вот функция: Код (Text): // Выборка всех записей из таблицы jos_estateagent $result = mysql_query("SELECT * FROM jos_estateagent"); $myrow = mysql_fetch_array($result); $conv = $myrow["coords"]; $string1 = substr("$conv", 0, 9); $string2 = substr("$conv", 10, 9); echo ($string1); echo ($string2); ?> Вопрос: как сотворить такое?
Сделайте TRIGGER прямо в БД и не мучайтесь (в данном случае) со всякой логикой в ПХП. http://dev.mysql.com/doc/refman/5.0/en/ ... igger.html Substring итд. в MySQL есть. http://dev.mysql.com/doc/refman/5.0/en/ ... tions.html
Если это обычное явление: 1)Нужна ли такая денормализация? Нельзя ли вычислять данные в момент когда они нужны? 2)Нельзя ли сразу заносить все данные? Если это разовое преобразование: 3)В mysql должен быть аналог substr: [sql]update table set field=func(field2, arg1, arg2), field1=func(field2, arg1, arg3)[/sql] где func этот самый аналог. Пока писал как раз привели ссылку.