цикл через записи базы данных MySQL и изменить форматы телефона - PullRequest
0 голосов
/ 03 марта 2010

Я работаю над устаревшей таблицей базы данных с номером телефона. поле

но проблема в том, что все записи (более 4k) находятся в разных

форматы.

Мне было интересно, есть ли быстрый способ их исправить, просматривая записи с помощью PHP и обновляя записи до определенного формата телефона

Ответы [ 2 ]

1 голос
/ 03 марта 2010

Я согласен, что записи 4k не о чем беспокоиться. Я предлагаю запросить телефонные номера и основной идентификатор таблицы, убрать все символы из телефонного номера и затем манипулировать им, чтобы получить нужный формат. Или вы можете сохранить его как числа и использовать свой интерфейс для изменения номера каждый раз, когда вы его отображаете. Ниже приведен небольшой непроверенный скрипт, который вы можете попробовать использовать. Не обрабатывает добавочные номера и ожидает 10 номеров.

// mysql_connect stuff
$q = mysql_query("Select phone_id, phone_number From phones");
while($r = mysql_fetch_assoc($q)) {
    $num = ereg_replace("[^0-9]", "", $r['phone_number']);
    if(strlen($num) == 10) {
        $num = substr($num, 0, 3) . '-' . substr($num, 3, 3) . '-' . $substr($num,-4);
    }
    $update = mysql_query("Update phones Set phone_number = '" . $num . "' Where phone_id = " . $r['phone_id']);
    // updated?
}
1 голос
/ 03 марта 2010

4K совсем не похоже на многие записи.

И я готов поспорить, что различные форматы делятся на конечное число комбинаций.

Интересно, было бы это возможно с помощью нескольких продуманных SQL-запросов? Если ваша СУБД имеет регулярные выражения и функции замены строк, вы можете управлять ею с помощью нескольких инструкций UPDATE. Если нет, то любой язык с возможностью запроса базы данных, замены строки и обновления сделает эту работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...