Arama butonu
Bu konudaki kullanıcılar: 1 misafir
7
Cevap
822
Tıklama
0
Öne Çıkarma
pdo ile tablo da listeleme yaparken Türkçe harf listeleme sorunu ?
T
8 yıl
Binbaşı
Konu Sahibi

merhaba

utf8-genaral-ci ile tabloları oluşturdum.. sorunsuz Türkçe ekleme-düzeltme yapıyorum... buraya kadar bişi yok.. ama iş table ile listeleme yaptırmak istediğimde
A dan sonra Ş-İ-Ü-Ö-Ç sonrasında B listeniyor
bağlantı olarak

$DB_host = "localhost";
$DB_user = "root";
$DB_pass = "";
$DB_name = "portal";

try
{
$DBcon = new PDO("mysql:host={$DB_host};dbname={$DB_name}",$DB_user,$DB_pass);
$DBcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "ERROR : ".$e->getMessage();
}


bu şekilde kullandığımda hem kayıt hemde listelerken sorun çıkmıyor... ama bu bağlantıya utf-8 i nereye eklersem ekleyim listelerken sorun çıkıyor.

listeleme kodumda şu şekilde

<?php
$stmt = $DBcon->prepare("SELECT * FROM arac00 where arac_act='1' ORDER BY arac_adi asc");
$stmt->execute();
?>
<center>
<table width="600px">
<tr class="tablobaslik">
<th title="Aracın Plakası">Araç Plakası</th>
<th title="Aracı Kullanan Şöför Adı" height="20px">Araç Şöförü</th>
<th title="Hareket Tipleri" width="80px">İşlem</th>
</tr>

<?php
if($stmt->rowCount() > 0)
{
while($row=$stmt->FETCH(PDO::FETCH_ASSOC))
{
?>
<tr>
<td width="150"><center><?php print($row['arac_plaka']); ?></center></td>
<td><?php print($row['arac_adi']); ?></td>


diye gidiyoru...
istediğim şu... küçük veya büyük harf olarak kullandığımız şekilde sıralamayı yaptırmak için kodu düzeltebilir misiniz ?

extra sorum....
tüm kayıt-update işleminde ilk harfi Türkçe büyük gerisi Türkçe küçük harf için örnek varmı ?

acemi olduğum için yapacağınız açıklamayı nasıl kullanacağımı bilememe durumu çok yüksek. kod üzerinde düzletme yaparak yardımcı olmanızı tercih ederim

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



F
7 yıl
Yüzbaşı

my.ini dosyasi yerine su sekilde de bu sorunu cozebilirsin;



$dbHandle = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf8", $dbUser, $dbPass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));


Bu sorunun Mysqli api icin cozumu;

$con = mysqli_connect(veritabani baglanti bilgileriniz);

mysqli_set_charset($con, "utf8");


Onemli nokta veritabanini olustururken karakter set ve collationu utf8_general_ci olarak belirlemek.


https://dev.mysql.com/doc/refman/5.7/en/charset-database.html


Phpmyadminde veya komut satirinda mysqle baglandiktan sonra asagidaki sql sorgusuyla veritabani olusturun.


CREATE DATABASE veritabani_adi CHARACTER SET utf8 COLLATE utf8_general_ci;


Bunu yapmayi unuttuysaniz sonradan tekrar ayarlayabilirsiniz.


ALTER DATABASE veritabani_adi CHARACTER SET utf8 COLLATE utf8_general_ci;

Veritabanini utf8 olarak ayarladiktan sonra, mevcut tablolariniza da bu islemi uygulamaniz gerekli.


ALTER TABLE tablo_adi CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;


Eğer fazla sayida tablonuz varsa, bu degisikligi phpmyadminden sql sorgusu ile degil de arayüz araciligiyla yaparsaniz, phpmyadmin size butun tablolari da utf8 yapiyim mi abi? Diye soruyor olmasi lazim. Bu sekilde hatirliyorum.





< Bu mesaj bu kişi tarafından değiştirildi FunctionDie -- 8 Mart 2018; 12:25:21 >

< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
T
7 yıl
Binbaşı
Konu Sahibi

quote:

Orijinalden alıntı: NoSky

my.ini dosyasi yerine su sekilde de bu sorunu cozebilirsin;



$dbHandle = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf8", $dbUser, $dbPass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));


Bu sorunun Mysqli api icin cozumu;

$con = mysqli_connect(veritabani baglanti bilgileriniz);

mysqli_set_charset($con, "utf8");


Onemli nokta veritabanini olustururken karakter set ve collationu utf8_general_ci olarak belirlemek.


https://dev.mysql.com/doc/refman/5.7/en/charset-database.html


Phpmyadminde veya komut satirinda mysqle baglandiktan sonra asagidaki sql sorgusuyla veritabani olusturun.


CREATE DATABASE veritabani_adi CHARACTER SET utf8 COLLATE utf8_general_ci;


Bunu yapmayi unuttuysaniz sonradan tekrar ayarlayabilirsiniz.


ALTER DATABASE veritabani_adi CHARACTER SET utf8 COLLATE utf8_general_ci;

Veritabanini utf8 olarak ayarladiktan sonra, mevcut tablolariniza da bu islemi uygulamaniz gerekli.


ALTER TABLE tablo_adi CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;


Eğer fazla sayida tablonuz varsa, bu degisikligi phpmyadminden sql sorgusu ile degil de arayüz araciligiyla yaparsaniz, phpmyadmin size butun tablolari da utf8 yapiyim mi abi? Diye soruyor olmasi lazim. Bu sekilde hatirliyorum.

arkadaşım

tabloları oluştururken de field tanımlarında da baktığımda zaten sorun yok idi utf8 için
Türkçe harf yazma ve kayıt da sorunum yok idi...
sorun... verileri sıralama yaparken oldu... dolayısı ile A dan sonra Ş harfinin gelmesini engelleyemedim... çareyi de yukarda bahsettiğim şekilde buldum

maalesef alternatif bir yol bulamadığım için bu şekilde şimdilik tercihimdir... alter table ile utf8 leri latin5 e çevirmeyi denemedim... belki kayıtları sıfırlamak ile uğraşmak gerekemez idi ....



< Bu ileti DH mobil uygulamasından atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.