folder Tahribat.com Forumları
linefolder Database - Veritabanı
linefolder My SQL İle İlgili Bir Soru



My SQL İle İlgili Bir Soru

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bektas
    x-files
    x-files's avatar
    Kayıt Tarihi: 06/Eylül/2005
    Erkek

    Selam arkadaşlar,

    Küçük bir sorum olacak, yardımcı olursanız memnun olurum, Sorum şu

    İl ve ilçe tablolarım var, ben bu tablolardaki il isimlerini türkçe karakterlerini değiştirerek seo isimli stuna yazdırmak istiyorum,

    Örnek:

    İl adı - Seo

    İSTANBUL - istanbul

    ÇANAKKALE - canakkale

    AĞRI - agri

    gibi, bunu sql sorgu ile yapabilir miyim yoksa php ile mi yapmam lazım. teşekkrüler.


    //Hayat Bazen Tatlıdır//--//Aşıksan vur saza şoförsen bas gaza// https://zulfumehmet.com/ Kişisel bir olay
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    saybirs
    saybirs's avatar
    Kayıt Tarihi: 24/Temmuz/2009
    Erkek
    direkt bu şekilde db'de hallet hocam.

    DELIMITER $$ CREATE FUNCTION TurkceKarakterKaldir(txt text) RETURNS text DETERMINISTIC BEGIN set txt = replace(txt,"Ğ","G"); set txt = replace(txt,"ğ","g"); set txt = replace(txt,"Ü","U"); set txt = replace(txt,"ü","u"); set txt = replace(txt,"Ş","S"); set txt = replace(txt,"ş","s"); set txt = replace(txt,"İ","I"); set txt = replace(txt,"ı","i"); set txt = replace(txt,"Ö","O"); set txt = replace(txt,"ö","o"); set txt = replace(txt,"Ç","C"); set txt = replace(txt,"ç","c"); return lower(txt); END$$ DELIMITER ; UPDATE sehir SET seo_ad = TurkceKarakterKaldir(ad)

     

     

     

    saybirs tarafından 30/Mar/22 09:56 tarihinde düzenlenmiştir
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bektas
    x-files
    x-files's avatar
    Kayıt Tarihi: 06/Eylül/2005
    Erkek
    saybirs bunu yazdı
    DELIMITER $$
    CREATE FUNCTION TurkceKarakterKaldir(txt text) 
    RETURNS text
    DETERMINISTIC
    BEGIN
    set txt = replace(txt,"Ğ","G");
    set txt = replace(txt,"ğ","g");
    set txt = replace(txt,"Ü","U");
    set txt = replace(txt,"ü","u");
    set txt = replace(txt,"Ş","S");
    set txt = replace(txt,"ş","s");
    set txt = replace(txt,"İ","I");
    set txt = replace(txt,"ı","i");
    set txt = replace(txt,"Ö","O");
    set txt = replace(txt,"ö","o");
    set txt = replace(txt,"Ç","C");
    set txt = replace(txt,"ç","c");
    return lower(txt);
    END$$
    DELIMITER ;
    
    
    
    UPDATE sehir SET seo_ad = TurkceKarakterKaldir(ad)

     

    Teşekkürler hocam il adını TurkceKarakterKaldir(il_adi) diye yazdım ama olmadı

    Şu şekilde php ile çözdüm

    try {
         $db = new PDO("mysql:host=localhost;dbname=db_adir;charset=utf8", "dbkullanici", "sifre");
    } catch ( PDOException $e ){
         print $e->getMessage();
    }
    
    
    function replace_tr($text) {
       $text = trim($text);
       $search = array('Ç','ç','Ğ','ğ','ı','İ','Ö','ö','Ş','ş','Ü','ü',' ');
       $replace = array('c','c','g','g','i','i','o','o','s','s','u','u','-');
       $new_text = str_replace($search,$replace,$text);
       return $new_text;
    } 
    
    $query = $db->query("SELECT * FROM sehir", PDO::FETCH_ASSOC);
    if ( $query->rowCount() ){
         foreach( $query as $row ){
             $degis_id = $row['sehir_id'];
             $degis_ad = strtolower(replace_tr($row['il_adi']));
              
              $queryg = $db->prepare("UPDATE sehir SET
               slug = :yeni_ad
                WHERE sehir_id = :eski_id");
                $update = $queryg->execute(array(
                     "yeni_ad" => $degis_ad,
                     "eski_id" => $degis_id
                ));
                if ( $update ){
                     print "güncelleme başarılı!";
                }
              
              
              
         }
    }
    

     


    //Hayat Bazen Tatlıdır//--//Aşıksan vur saza şoförsen bas gaza// https://zulfumehmet.com/ Kişisel bir olay
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    saybirs
    saybirs's avatar
    Kayıt Tarihi: 24/Temmuz/2009
    Erkek

    ilk function'ı çalıştır hocam, sonrasında

    UPDATE sehir SET seo_ad = TurkceKarakterKaldir(ad) sorgusunu çalıştır.

    sehir tablosuda bu şekilde kendine göre revize edersin hocam.

    id ad seo_ad
    1 Adana NULL
    2 Ankara NULL
    3 Eskişehir NULL
    4 Bursa NULL
    5 Çanakkale NULL
    6 Denizli NULL
    7 Mardin NULL
    8 Gümüşhane NULL
    10 Ağrı NULL

     

    saybirs tarafından 30/Mar/22 10:05 tarihinde düzenlenmiştir
Toplam Hit: 892 Toplam Mesaj: 4
sql karakter değiştirme