Jump to content

PhpMyAdmin скопировать название транслитом


Recommended Posts

подскажите пожалуста в таблице options есть название на русском и транслитом, потер случайно все названия на транслите как бы скопировать их обратно из русского?

UPDATE db_options SET value = translit

копирует из value в translit на русском, а как сделать чтобы перевело само на транслит?

Link to post
Share on other sites

функция :

function rus2translit($string) {
    $converter = array(
        'а' => 'a',   'б' => 'b',   'в' => 'v',
        'г' => 'g',   'д' => 'd',   'е' => 'e',
        'ё' => 'e',   'ж' => 'zh',  'з' => 'z',
        'и' => 'i',   'й' => 'y',   'к' => 'k',
        'л' => 'l',   'м' => 'm',   'н' => 'n',
        'о' => 'o',   'п' => 'p',   'р' => 'r',
        'с' => 's',   'т' => 't',   'у' => 'u',
        'ф' => 'f',   'х' => 'h',   'ц' => 'c',
        'ч' => 'ch',  'ш' => 'sh',  'щ' => 'sch',
        'ь' => '\'',  'ы' => 'y',   'ъ' => '\'',
        'э' => 'e',   'ю' => 'yu',  'я' => 'ya',
        
        'А' => 'A',   'Б' => 'B',   'В' => 'V',
        'Г' => 'G',   'Д' => 'D',   'Е' => 'E',
        'Ё' => 'E',   'Ж' => 'Zh',  'З' => 'Z',
        'И' => 'I',   'Й' => 'Y',   'К' => 'K',
        'Л' => 'L',   'М' => 'M',   'Н' => 'N',
        'О' => 'O',   'П' => 'P',   'Р' => 'R',
        'С' => 'S',   'Т' => 'T',   'У' => 'U',
        'Ф' => 'F',   'Х' => 'H',   'Ц' => 'C',
        'Ч' => 'Ch',  'Ш' => 'Sh',  'Щ' => 'Sch',
        'Ь' => '\'',  'Ы' => 'Y',   'Ъ' => '\'',
        'Э' => 'E',   'Ю' => 'Yu',  'Я' => 'Ya',
    );
    return strtr($string, $converter);
}

 

Link to post
Share on other sites

Ну у Вас где то же формируются названия эти, вот и скормите функцию в переменную а переменную в то место где формируются названия и сделайте либо insert либо update 

функций таких чисто в самом mysqli не встречал 

Link to post
Share on other sites

вот ребята подсказывают, но не пойму как это сделать через UPDATE а не CREATE чтобы скопировать из одного столбца в другой

  CREATE TABLE IF NOT EXISTS `translit` (
   `t` varchar(3) NOT NULL,
    `f` varchar(15) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

   INSERT INTO `translit` (`t`, `f`) VALUES
 ('a', 'а'),
 ('b', 'б'),
 ('v', 'в'),
 ('g', 'г'),
 ('d', 'д'),
 ('e', 'е'),
 ('e', 'ё'),
 ('zh', 'ж'),
 ('z', 'з'),
 ('i', 'и'),
 ('y', 'й'),
 ('k', 'к'),
 ('l', 'л'), ... и т.д.

 

Link to post
Share on other sites

ну тут немного не то что Вам нужно. Вам то нужен транслит а не найти и заменить значение 1 буквы, врать не буду на чистом запросе это никогда не делал. А о чем мы говорим самопис или cms какая то :?

Link to post
Share on other sites

самопис, случайно хлопнул таблицу с транслитом (таблица отвечающая за URL где они автоматом формировались) осталось на русском только, надо пересоздать в общем по новой или скопировать value > translit через phpmyadmin 

Link to post
Share on other sites

ну так у Вас где то все равно чпу формируются, вот там и сделайте как я сказал и будет все норм,  функция сама сделает транслит и писанет в базу, у Вас где то в case создается все равно логика в контроллере. Там и пропищите на чпу, это самый простой вариант я так всегда делаю

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...