- Katılım
- 27 Ekim 2006
- Mesajlar
- 545
- Reaction score
- 0
Mrb arkadaşlar;
Şimdi sitemde arananları db ye yazdırıyorum.
Db sistemimi
Tablo adı=aranan
alanlar = id , date, aranan, duzenlenen
Sistemin Çalışma Şekli
Sitemin ana sayfasında yer alan arama formuna Kullanıcı ne girerse girilen kelimeyi
db ye kaydediyor Yanlız burada aranan kelimeyi "aranan" alanına ve gene aynı kelimenin türkçe karakterleri ingilizceye çevrilmiş şekilde "duzenlenen" alanına kaydediyor
Ben php dosyası ile db ye kaydettiğim verileri
Bu kod ile çekiyorum ve Bu şeklilde bana "Örneğin aranan kelime =çarıklı mustafa"
http://www.sitem.com/oyan/carikli-mustafa.html
url ler veriyor. Ve bu linke tıklandığında carikli mustafa kelimesinin aranmış şekilde sorgusu çıkıyor.
Yanlız sorun arana kelime türkçe olmasına rağmen linkle tıkladığında ingiliceye dönüşmüş şekli aranıyor ve doğal olarak sonuç bulunamıyor. Bunun nasıl türkçe karakterinin aranmasını sağlarız tşk.
Arama.php dosyası
Şimdi sitemde arananları db ye yazdırıyorum.
Db sistemimi
Tablo adı=aranan
alanlar = id , date, aranan, duzenlenen
Sistemin Çalışma Şekli
Sitemin ana sayfasında yer alan arama formuna Kullanıcı ne girerse girilen kelimeyi
db ye kaydediyor Yanlız burada aranan kelimeyi "aranan" alanına ve gene aynı kelimenin türkçe karakterleri ingilizceye çevrilmiş şekilde "duzenlenen" alanına kaydediyor
Ben php dosyası ile db ye kaydettiğim verileri
PHP:
<?php
$connection = mysql_connect("xxxxxxxxx",
"xxxxxxxxxx",
"xxxxxxxxx");
mysql_select_db("xxxxxxxxx", $connection);
mysql_query("SET NAMES 'latin5'");
//Makaleler veritabanını seçtik ve Son 10 içeriği (makale_id)'sine göre çektik.
$tablo = "SELECT * FROM aranan ORDER BY id DESC LIMIT 0, 10000";
$sorgu = mysql_query ( $tablo ) ;
function utfyiwindowsa($metin) {
$metin = str_replace("Ü","U",$metin);
$metin = str_replace("Åz","S",$metin);
$metin = str_replace("Äz","G",$metin);
$metin = str_replace("Ç","Ç",$metin);
$metin = str_replace("Ä°","I",$metin);
$metin = str_replace("Ö","Ö",$metin);
$metin = str_replace("ü","u",$metin);
$metin = str_replace("ÅŸ","s",$metin);
$metin = str_replace("ç","c",$metin);
$metin = str_replace("ı","i",$metin);
$metin = str_replace("ö","o",$metin);
$metin = str_replace("ÄŸ","g",$metin);
return $metin;
}
?>
<html>
<head>
<title>şarkısözü.net - şarkı sözleri portalı</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
</head>
<body>
<?php
while ( $oku = mysql_fetch_array ( $sorgu ) ) {
// Gelen verileri döküp link verdik (Bu link yapısı örnektir ve .httacces kullanmıştım bu öyle siz kendiniz değiştirin.
$metin='<a name="'.$oku['aranan'].'" title="'.$oku['aranan'].'" href="oyna/'.$oku['duzenlenen'].'.html">'.$oku['aranan'].'</a>, ';
$metin = utfyiwindowsa($metin);
echo $metin;
}
?>
</body>
</html>
Bu kod ile çekiyorum ve Bu şeklilde bana "Örneğin aranan kelime =çarıklı mustafa"
http://www.sitem.com/oyan/carikli-mustafa.html
url ler veriyor. Ve bu linke tıklandığında carikli mustafa kelimesinin aranmış şekilde sorgusu çıkıyor.
Yanlız sorun arana kelime türkçe olmasına rağmen linkle tıkladığında ingiliceye dönüşmüş şekli aranıyor ve doğal olarak sonuç bulunamıyor. Bunun nasıl türkçe karakterinin aranmasını sağlarız tşk.
Arama.php dosyası
PHP:
<?php
//benim ekledigim
function duzenle($veri) {
$bozuk = array('ı','ç','ş','ğ','ü','ö','İ','Ç','Ş','Ğ','Ü','Ö',' ');
$duzgun = array('i','c','s','g','u','o','i','c','s','g','u','o','-');
$veri = @str_replace($bozuk,$duzgun,$veri);
return $veri;
}
//benim ekledigim son
/// trim ile kelime degiþkenine gelen verinin sagýndaki ve solundaki boþlukarý siliyoruz
$kelime = trim($_REQUEST['kelime']);
//benim ekledigim 2
$deneme= $kelime;
$osman = date ("Y-m-d H:i:s", (time()+ $config['date_adjust']*60));
$ccc = @duzenle($kelime);
$connection = mysql_query("INSERT INTO aranan (date, aranan, duzenlenen) values ('$osman', '$deneme', '$ccc')");
//benim ekledigim 2 son
/// þimdi mysql de sorgumuzu yapýyoruz burda like ýn baþýndaki ve sonundaki % iþaretleri aradýgýmýz kelimenin baþýnda ve sonunda arýyacak þeklide tasarlýyoruz
$sql = mysql_query("select * from oyunlistesi WHERE baslik like '%".$kelime."%' ");
/// mysql_num_rows ile kaç satýr buldugumuz kontrol ediyoruz
$bulunan = mysql_num_rows($sql);
/// eger 1 veya üstü satýr bulmuþ ise aþagýdaki if yapýmýzla sorgumuzu derliyoruz
if($bulunan >='1'){
/// while ile dongumuzu yaratýp gelen kayýt kadar dongu yapýyoruz mysql_fetch_array lada gelen veriyi kullanýlabilr bir veri cinsine sokuyoruz
/// alan lardaki degiþkenlerimizi tanýmlýyalým daha basit olmasý için ben bu þeklide kullanýyorum ama sen bu degiþkenleri
/// $row["yazan_ismi"]; gibide kullanabilirsin
/// echo komutuylada sayfada çýktý alýyoruz
?>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="97%" class="ktablokenari">
<tr>
<td width="100%" height="25" class="kbaslik"><center>Oyun Arama Sonuç Listesi</center></td>
</tr>
</table>
</center>
</div>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="97%">
<tr>
<td width="100%" class="ktablokenari"><p align="center"><?php
$r = 0;
echo "<table><tr>";
while ($row=mysql_fetch_array($sql)) {
$r++;
?>
<td width="15%" class="oyunarka"><center><a href="oyunlar-15-<? echo "".$row[listeid].""; ?>.html"><? echo "".$row[baslik].""; ?><br><img border="0" src="resimler/oyunresmi/<? echo "".$row[resmi].""; ?>" width="75" height="75"></a><br><b><? echo "".$row[oynandi].""; ?></b><br>oynama</center>
<?
if ($r % 6 == 0 )
{
echo "</tr><tr>";
$r=0;
}
}
echo "</tr></table>";
?>
</tr>
</table>
</center>
</div>
<?
}
//// yukarda kulanýdýgmýz if yapýsýnda eger sorguladýgýmýz satýr 0 degeri içeriyorsa
/// kayýt olmadýgýný anlayýp kayýt bulunamadý diyoruz
else {
echo"<br>Sistemimiz de aradığınız kelimeleri içeren kayıt bulunamadı. Lütfen doğru kelimeleri girdiğinizden ve sistemimiz de girdiğiniz kelimelere uyan bir oyun olduğundan emin olunuz.";
}
echo"<center>Bulunan toplam oyun sayısı: <b>$bulunan</b></center>";
?>