Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Veritabanları & SQL

Cevapla
 
LinkBack Seçenekler
Eski 23/04/2008, 16:22   #1 (permalink)
Üye
 
Üyelik Tarihi: 10/2004
Mesaj: 52
Varsayılan MySQL Veri Çekme - Türkçe Karakter Sorunu

Merhabalar,

MySQL'den İsmail Hazman isimli bir yazarı çekiyorum.

Sayfa adresine $_GET ile İ harfi ile başlayanları ("...yazar_getir&yazar=İ") çektirsemde İsmail Hazman Y harfi ile başlayanları çektirsem de ("...yazar_getir&yazar=Y") İsmail Hazman geliyor. İ harfini anladım, Y harfinde neden geliyor? Phpmyadmin'den kontrol ettim, İsmail Hazman Ýsmail Hazman olarak duruyor. Acaba bu nedenden mi iki harfi çektirsemde geliyor?

Ve bu duruma nasıl çare bulabilirim yardımcı olursanız sevinirim.
ozicix hatta değil   Alıntı Yaparak Yanıtla
Eski 23/04/2008, 16:57   #2 (permalink)
Özgür Yazılım
 
MaviAteş Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 03/2007
Yer: Selçuk Üniversitesi
Mesaj: 269
Varsayılan

mysql 'de tablonuzu utf8_turkish_ci karakter seti ile tutarsanız İsmail sözcüğü Ýsmail olarak değil İsmail olarak yazılır.

Birde sql cümleniz nasıl.

PHP Kodu:
$yazar=$_get['yazar'];
$sql=mysql_query("select * from tablo Where yazar='".$yazar."%'"); 
şeklinde mi?

Yani % işaretlerini nasıl kullandınız?
MaviAteş hatta değil   Alıntı Yaparak Yanıtla
Eski 23/04/2008, 17:40   #3 (permalink)
Üye
 
Üyelik Tarihi: 10/2004
Mesaj: 52
Varsayılan

yazar like '$y%'" şeklinde
ozicix hatta değil   Alıntı Yaparak Yanıtla
Eski 23/04/2008, 17:59   #4 (permalink)
Üye
 
Üyelik Tarihi: 10/2004
Mesaj: 52
Varsayılan

bu arada field utf8_general_ci de, onu dediğin gibi utf8_turkish_ci yaptım ama yine Ý olarak kaydediyor
ozicix hatta değil   Alıntı Yaparak Yanıtla
Eski 23/04/2008, 20:28   #5 (permalink)
Üye
 
Caylaq Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2007
Yer: DELPHI LAND
Mesaj: 642
Varsayılan

Bu konu forumda çok konuşulmuştu. Arama yaparak detaylı bilgi bulabilir, sorununuzu hemen çözebilirsiniz.


Kolay gelsin
Caylaq şu an hatta   Alıntı Yaparak Yanıtla
Eski 24/04/2008, 19:42   #6 (permalink)
Üye
 
Üyelik Tarihi: 10/2004
Mesaj: 52
Varsayılan

ben benim sorunumu bulamadım. yardımcı olabilecek varmı?
ozicix hatta değil   Alıntı Yaparak Yanıtla
Eski 25/04/2008, 02:10   #7 (permalink)
Özgür Yazılım
 
MaviAteş Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 03/2007
Yer: Selçuk Üniversitesi
Mesaj: 269
Varsayılan

Birde şunu deneyin, Mümkünse veritabanındaki tablonuzu Latin5 yapın, daha sonra veritabanına bağlantı kodunuzun altına şu 3 satırı ekleyin.

PHP Kodu:
mysql_query("SET NAMES 'latin5'"); 
mysql_query("SET CHARACTER SET latin5"); 
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'"); 
Sonra İ harfi için bağlantı oluşturduğunuz sayfanın ve İ harfine tıkladıktan sonra açılan sayfanın karakter kodlamasını ISO-8859-9 olarak ayarlayın.

Ondan sonra deneyin.

Aklıma gelen şeyler bunlar. Birde bu bölümü ilgilendiren kodları buraya yazın, bir inceleyelim belki sürekli gözden kaçan basit bir hata vardır.
MaviAteş hatta değil   Alıntı Yaparak Yanıtla
Eski 25/04/2008, 11:52   #8 (permalink)
Eski Cevizci
 
sadroalin Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 06/2004
Mesaj: 214
Varsayılan

arkadaşlar bu konuda son 3 gündür çalışıyorum ve sonunda başta bilmeden latin1 de oluşturduğum veri tabanını latin5 türkçeye çevirdim. yaptığım işlemleri yazıyorum paylaşmak açısından bekli daha kısasını bulan olur.

veritabananın bir yedeğini alıp başla bir veri tabanı ismi ile yeniden restore ettim.
yeni veri tabanını truncate table ile boşalttım.
aşağıda internetden aldığım bir script ile tüm veri tabanını latin5 çevirdim.
<?
/*
yazan : turker
e-mail : turker.biz@gmail.com
version : 0.01
------------
Üstteki bilgilere dokunmadan, istedi?iniz gibi kullanabilir, satabilir ve da?ytabilirsiniz.
*/

# karakter seti ayarlary
$charset='latin5';

# ba?lanty ayarlary
$conn=mysql_connect("localhost","root","****") or die('nerdesin mysql?');
mysql_select_db("lokman2",$conn) or die('taze bitti');

# karakter seti de?i?tirilecek alan tipleri
$types=array(
'CHAR',
'VARCHAR',
'TINYTEXT',
'TEXT',
'MEDIUMTEXT',
'LONGTEXT',
'TINYBLOB',
'BLOB',
'MEDIUMBLOB',
'LONGBLOB',
'ENUM',
'SET'
);

/*---------------- yeter bu kadar ayar ----------------------- */

# follow the white rabbit
$q1=mysql_query('SHOW TABLES') or die("1");
while ($r1=mysql_fetch_array($q1)) {
$table=$r1[0];
$sql='ALTER TABLE '.$table.' CONVERT TO CHARACTER SET '.
$charset.' COLLATE '.$charset.'_turkish_ci';
mysql_query($sql);
echo "\n\n

$table tablosunun karakter seti deðiþtirildi";

$q2=mysql_query('SHOW FIELDS FROM `'.$table.'`') or die("2");
while ($r2=mysql_fetch_assoc($q2)) {
//print_r($r2);
$field=$r2['Field'];
$type=strtoupper($r2['Type']);
$null=strtoupper($r2['Null']);
$default=strtoupper($r2['Default']);

if (in_array($type,$types)) {
if ($null=='YES') $null='NULL';
else $null='NOT NULL';

if (!empty($default)) $default='DEFAULT '.$default;

$sql='ALTER TABLE `'.$table.'` MODIFY COLUMN `'.$field.'` '.$type.' CHARACTER SET '.
$charset.' COLLATE '.$charset.'_turkish_ci '.$null.' '.$default;
mysql_query($sql) or die($sql);
} // if
} // while
echo "\n
$table tablosu içindeki alanlarýn karakter seti deðiþtirildi";
} // while
?>
daha sonra ço program yazdım eski veri tabanından verileri yeni veri tabanına eklemek için ama işe yaramadı. bende veri tabanındaki kayırların insert cümlelerini oluşturdum ve sonra query browser den bunları çalıştırdım. tüm veri tabanım türkçe olarak hazır oldu.

bunu daha iyisini bulamadığımdan böyle yaptım bilen varsa lütfen paylaşsın çünkü bu genel bir sorun oldu artık.
sadroalin hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
mysql türkçe karakter sorunu techmaster Veritabanları & SQL 5 08/05/2008 10:27
mysql türkçe karakter sorunu Arlong PHP 25 07/04/2008 05:42
Mysql Türkçe Karakter Sorunu Manyakgeyik PHP 2 04/12/2007 23:16
mysql türkçe karakter sorunu - php Lisans PHP 2 09/09/2007 00:41
veri çekmede türkçe karakter sorunu... murtizek PHP 5 25/10/2005 05:32


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 00:13.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net