Oldal: 1 / 2 12 UtolsóUtolsó
Eredmény: 1 - 10 (14) összesen

Téma: Adatbázis és fájl konvertálás

  1. #1
    Bölcs
    Csatlakozott
    09-04-30
    Hely
    A Dél-Alföld közepe...
    Hozzászólás
    1.523
    Thanked 1 Time in 1 Post

    Alapbeállítás Adatbázis és fájl konvertálás

    Sziasztok!

    Adott egy oldal, ami még 1252-es karakterkódolást használ, és át szeretném alakítani utf-8 kódolásra, azon belül is utf-8_general_ci adatbázis egybevetéssel.

    Nos, Notepad++ program segítségével tudom, hogy egy fájlt hogy kell átalakítani ansi kódolásról utf-8 BOM nélküli kódolásra, de mi a helyzet, ha cca. 200 fájlt szeretnék átalakítani úgy, hogy ne kelljen egyenként megnyitnom.
    Tud valaki erre valami gyorsa batch megoldást?

    A másik ehhez kapcsolódik, az adatbázis. Azt látom, hogy phpMyAdmin-ban a tevékenységeknél az egész adatbázis egybevetése is megváltoztatható, de az egyes táblákon belül minden mezőnek külön kódolása van.

    Hogyan lehet itt is egyetlen mozdulattal az egész adatbázist úgy ahogy van, hirtelen utf-8_general_ci kódolásúra alakítani?



  2. #2
    Új tag szpetya logója
    Csatlakozott
    08-04-16
    Hely
    Budapest
    Hozzászólás
    23
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Adatbázis és fájl konvertálás

    Idézet VChris eredeti hozzászólása Hozzászólás megtekintése
    Sziasztok!
    ...
    A másik ehhez kapcsolódik, az adatbázis. Azt látom, hogy phpMyAdmin-ban a tevékenységeknél az egész adatbázis egybevetése is megváltoztatható, de az egyes táblákon belül minden mezőnek külön kódolása van.

    Hogyan lehet itt is egyetlen mozdulattal az egész adatbázist úgy ahogy van, hirtelen utf-8_general_ci kódolásúra alakítani?

    mysql --database=dbname -B -N -e "SHOW TABLES" | awk '{print "ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;"}' | mysql --database=dbname &

    Üdv
    P



  3. #3
    Bölcs
    Csatlakozott
    09-04-30
    Hely
    A Dél-Alföld közepe...
    Hozzászólás
    1.523
    Thanked 1 Time in 1 Post

    Alapbeállítás re: Adatbázis és fájl konvertálás

    Idézet szpetya eredeti hozzászólása Hozzászólás megtekintése
    mysql --database=dbname -B -N -e "SHOW TABLES" | awk '{print "ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;"}' | mysql --database=dbname &

    Üdv
    P
    Köszönöm szépen! Tehát ez így, változtatás nélkül, ebben csak a dbnaame-et kell helyettesítenem, azon kívül semmi mást, ha jól értelmezem, ugye?
    Az & a végén az záró karakter, tehát nem maradt le semmi?

    Szeretnék én ilyen szinten lenni SQL-ben

    SELECT, INSERT, UPDATE, DELETE, DROP, SET, és kb. ennyi
    De már ez is sokmindenre elég.



  4. #4
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.749
    Begyűjtött 1.432 köszönetet
    895 hozzászólásával

    Alapbeállítás re: Adatbázis és fájl konvertálás

    amit szpetya irt az shell parancs, ahoz pedig nem hiszem hogy hozzafersz. phpmyadminbol ezzel tudod megcsinalni tablankent:
    ALTER TABLE `table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    vagy irsz egy scriptet ami lekeri sz osszes tablanevet es lefuttatja mindegyikkel


    If debugging is the process of removing software bugs, then programming must be the process of putting them in.
    Ruby blog
    Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.
    Respect all, fear none

  5. #5
    Bölcs
    Csatlakozott
    09-04-30
    Hely
    A Dél-Alföld közepe...
    Hozzászólás
    1.523
    Thanked 1 Time in 1 Post

    Alapbeállítás re: Adatbázis és fájl konvertálás

    Idézet Geri07 eredeti hozzászólása Hozzászólás megtekintése
    amit szpetya irt az shell parancs, ahoz pedig nem hiszem hogy hozzafersz. phpmyadminbol ezzel tudod megcsinalni tablankent:
    ALTER TABLE `table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    vagy irsz egy scriptet ami lekeri sz osszes tablanevet es lefuttatja mindegyikkel
    Huhh, köszi, hogy írtad, ki sem szúrtam, hogy shell parancs, pedig tényleg az, látszik rajta

    Ha táblánként kell, az nem gond, mert cca. 30 tábla van, az nem nagy meló. Az lett volna rossz, ha minden mezőt is egyenként kell átállítani phpMyAdmin felületen.

    Már ez is nagy segítség.

    Ami viszont még jól jönne, az a html és php fájlok konvertálása, mert abból azért sok van. Meg tudom csinálni Notepad++ progival, de azzal egyenként kell. Kerestem a neten, de nem találok olyat, ami batch konvertet csinálna.

    Ha nincs, akkor marad a kézi megoldás.



  6. #6
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.749
    Begyűjtött 1.432 köszönetet
    895 hozzászólásával

    Alapbeállítás re: Adatbázis és fájl konvertálás

    par soros script megcsinalja, ha gondolod este beirom neked, de szarakodj kezzel. marmint a db-vel



  7. #7
    Bölcs
    Csatlakozott
    09-04-30
    Hely
    A Dél-Alföld közepe...
    Hozzászólás
    1.523
    Thanked 1 Time in 1 Post

    Alapbeállítás re: Adatbázis és fájl konvertálás

    Idézet Geri07 eredeti hozzászólása Hozzászólás megtekintése
    par soros script megcsinalja, ha gondolod este beirom neked, de szarakodj kezzel. marmint a db-vel
    Ohhh, nagyon szépen köszönöm a felajánlást, de a db nem gond így, hogy csak táblánként kell, nem pedig mezőnként, mert így ezt az SQL commandot ctrl-c, ctrl-v-vel csak másolgatom, és átírom a táblák nevét.
    Ez rossz esetben sem több, mint 10 perc, és akkor még ásítoztam is közben

    A php és html fájlok átnevezése lesz fájósabb, ha kézzel kell.

    De scriptet nem is hiszem, hogy tudnék futtatni azon a szerveren, ahol ez nekem kell, mert ahhoz nincsen jogosultságom, csak ftp elérésem, és mysql elérésem van.



  8. #8
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.749
    Begyűjtött 1.432 köszönetet
    895 hozzászólásával

    Alapbeállítás re: Adatbázis és fájl konvertálás

    PHP kód:
    mysql_connect("host","user","password");
    $res mysql_list_tables("adatbazis");
    while(
    $a mysql_fetch_array($res))mysql_query("ALTER TABLE '".$a[0]."' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"); 
    ezt toltsd fel egy fajlban az adatokkal kitoltve es nyisd meg a bongeszoben



  9. #9
    Bölcs
    Csatlakozott
    09-04-30
    Hely
    A Dél-Alföld közepe...
    Hozzászólás
    1.523
    Thanked 1 Time in 1 Post

    Alapbeállítás re: Adatbázis és fájl konvertálás

    Idézet Geri07 eredeti hozzászólása Hozzászólás megtekintése
    PHP kód:
    mysql_connect("host","user","password");
    $res mysql_list_tables("adatbazis");
    while(
    $a mysql_fetch_array($res))mysql_query("ALTER TABLE '".$a[0]."' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"); 
    ezt toltsd fel egy fajlban az adatokkal kitoltve es nyisd meg a bongeszoben
    Ja, hogy PHP szkript. Így már világos, köszönöm szépen, hamarosan csinálom is.



  10. #10
    Új tag szpetya logója
    Csatlakozott
    08-04-16
    Hely
    Budapest
    Hozzászólás
    23
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Adatbázis és fájl konvertálás

    Idézet Geri07 eredeti hozzászólása Hozzászólás megtekintése
    amit szpetya irt az shell parancs, ahoz pedig nem hiszem hogy hozzafersz. phpmyadminbol ezzel tudod megcsinalni tablankent:
    ALTER TABLE `table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    vagy irsz egy scriptet ami lekeri sz osszes tablanevet es lefuttatja mindegyikkel
    ha van hozzá joga akkor le tudja futtatni php ból

    egyébként én is dump olnék...

    valami hasonlóképpen:

    Kód:
    $sql_file_name='db.sql';
    
    $exec = 'mysqldump -u'.MYSQL_USER.' -p'.MYSQL_PASS.' '.MYSQL_DB.' > db.sql';
    exec($exec);
    
    
    
    if(!is_file($sql_file_name))
    	die('Nincs feldolgozandó db.sql file!');
    
    $handle = fopen($sql_file_name, "rb");
    $contents = fread($handle, filesize($sql_file_name));
    fclose($handle);
    
    $tables=explode('CREATE TABLE', $contents);
    ha nem tudsz exec parancsot futtatni akkor csak simán phpmyadminból dumpold ki és tedd bele egy fileba amit a fentiek alapján feldolgozol és a $tables tömbben benne lesznek tábláid és onnan ki tudod szedni a táblaneveket és egy sima ALTER TABLE parancsot lefuttatsz és kész is vagy csak ez így nem egy lépés

    Üdv
    P



Oldal: 1 / 2 12 UtolsóUtolsó

A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •