Покинул форум
Сообщений всего: 64
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
Друзья помогите плиз решить проблему.
Нужно взять из одной таблицы БД, все значения одного столбца, прогнать их через функцию транслитерации (здесь подсказали такую:
и записать транслитерированные значения на место тех, которые сейчас существуют
Помогите плиз со скриптом..
ЗЫ - это нужно сделать один раз, т.е. скрипт одноразовый
ЗЗЫ - просьба объяснить как младенцу
структура таблицы: (скопировано из дампа)
Что в итоге лучше отработает, толпа мелких запросов или один большой - фиг знает надо проверять
--
Единственный момент. Если вы пытаетесь сделать ЧПУ, то ваша функция траслитерации не подходит. Добавьте в нее удаление апострофов и прочих символов, а пробелы замените на тире, при этом удаляйте последнее тире.
LIME
Отправлено: 26 Января, 2015 - 15:28:04
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
skiphog забыл WHERE
он так все потрет нафиг в одно значение
перепиши
и непонятно почему тримишь после цикла
подумай хорошенько zmeyx не применяй код выше ни в коем случае
пока не применяй) (Добавление) skiphog основной императив в кодинге(стремление если угодно)
сделать все проще
прочему избегаешь WHERE id = ?
это проще и правильнее
загоняешься дупликатом
Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014 Откуда: Киров, Россия
Помог: 11 раз(а)
LIMEСоздал тестовую базу данных на основе zmeyx
Выполнил запрос, все корректно отработало и ничего не затерлось.
--
ps.
rtrim - что бы убрать последнюю запятую в запросе после (....),(.....),(.....), <- вот эту
LIME
Отправлено: 26 Января, 2015 - 15:43:24
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
skiphog да
это я непотрудился прочесть код
страдаю иногда ленью))
хорошее решение но трудно читаемое
потому лучше всеже WHERE
или есть какой-то профит что я не увидел? (Добавление)
плохое решение всеже
это я к тому что назвал его хорошим
всеже плохое
GoDr
Отправлено: 26 Января, 2015 - 15:44:13
Посетитель
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015 Откуда: Тамбов
Помог: 17 раз(а)
Что значит подробно? До какого уровня? С установки локального сервера?
Ладно, попробую подробно.. Давно не использовал чистый функционал, попробую вспомнить... В обще-где-то так.. Вроде работает
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015 Откуда: Тамбов
Помог: 17 раз(а)
skiphog пишет:
Если вы пытаетесь сделать ЧПУ, то ваша функция траслитерации не подходит.
Конечно не подходит... Там много ещё чего нужно убрать и проверить Плюс ко всему, такой принцип создания ссылок породит огромное количество дубликатов (Добавление)
LIME пишет:
ну нубы же...надо понимать или идти мимо
Просто как-то не понятно когда люди делают сайт (сами так говорят). а как применить готовый запрос не знают.. Ну да ладно... Как ты сказал, ленюсь иногда
Кстати, задача стоит сделать разовую функцию.. так что мне кажется пофиг какой код использовать. Даже можно не заботиться о нагрузке на сервер и время )))
Покинул форум
Сообщений всего: 64
Дата рег-ции: Дек. 2012
Помог: 0 раз(а)
GoDr пишет:
// Подключаемся к БД
$mysqli = new mysqli("host", "user", "password", "database");
$sql = "SELECT `virtuemart_product_id`, `slug` FROM `j25_virtuemart_products_ru_ru`";
if ($result = $mysqli->query($sql)) {
// выборка данных и помещение их в массив
while ($row = $result->fetch_assoc()) {
$slug_new = russian_transliterate($row['slug']);
$sql = "UPDATE `j25_virtuemart_products_ru_ru` SET `slug`= '" . $slug_new . "' WHERE `virtuemart_product_id`= ".$row['virtuemart_product_id'];
$mysqli->query($sql);
}
// очищаем результирующий набор
$result->close();
}
// закрываем подключение
$mysqli->close();
такое решение похерило все данные в таблице
ЗЫ.. таблица всстанавливается мгновенно если нужно. Это происходит не на рабочем сайте, а на копии БД
GoDr
Отправлено: 26 Января, 2015 - 15:57:02
Посетитель
Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015 Откуда: Тамбов
Помог: 17 раз(а)
zmeyx, ещё раз проверил. у меня всё отлично сработало. Надеюсь в
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.