Merhaba arkadaşlar. Bu dersimizde tr-ing | ing-tr sözlük yapacağız. Öncelikle mantığını anlatmak istiyorum. Forma girilen kelimeyi ve radio butonlar vasıtasıyla seçilen dili cevir.php sayfamıza gönderiyoruz. Burada öncelikle bağlantı kodlarımızı yazıyoruz ardından POST ile aldığımız değerler ile veritabanında sorgulama yapıyoruz ve girilen kelimenin ingilizce karşılığını yada türkçe karşılığını veritabanından çekerek görüntülüyoruz. Bu işlemlerin sayfa yenilenmeden yapılması için formumuzun bulunduğu sayfada iframe kullanarak cevir.php sayfasını görüntülüyoruz ve biz her çevir butonumuza bastığımızda sonucu iframe'de görüyoruz. Böylelikle sayfa yenilenmesiyle kaybedilen zamanı ve trafiği en aza indirgemiş oluyoruz. Şimdi formumuzun bulunduğu sayfanın yani index.php sayfasının kodlarını inceleyelim.
<form action="cevir.php" target="ceviri" method="post" name="sozluk">Burada öncelikle formumuzu oluşturduk. Action değerine cevir.php target değerine de iframe'in name değerini yazdık. Böylelikle formumuzu iframe'e yönlendirmiş olduk. Ardından tablo yapımızı uygun bir şekilde oluşturduk. Text, submit, radio form elemanlarını uygun yerlere yerleştirdik. En altada sonuçlarımızın görüntüleneceği iframe'i yerleştirdik. Şimdi cevir.php sayfamıza geçelim.
<table border="0" style="box-shadow: 0px 0px 1px #666666;
-moz-box-shadow: 0px 0px 1px #666666;
-webkit-box-shadow: 0px 0px 1px #666666; margin-top:200px; margin-left:400px; " bgcolor="#f6f6f6" width="600"><tr><td align="center"><img src="sozluklogo.png" /></td></tr>
<tr><td align="center">
<table border="0" cellpadding="0" cellspacing="0" style="box-shadow: 0px 0px 1px #666666;
-moz-box-shadow: 0px 0px 1px #666666;
-webkit-box-shadow: 0px 0px 1px #666666;">
<tr><td>
<input type="text" name="kelime" style="border:solid; border-width:1px; border-color:#F8942D; color:#333333; font-size:16px; font-family:Tahoma, Geneva, sans-serif; width:400px; padding:10px;" placeholder="Kelimeyi Giriniz" />
</td><td>
<input type="submit" value="Çevir" style="border:none; background:#F8942D; color:#ffffff; font-weight:bold; font-size:16px; font-family:Tahoma, Geneva, sans-serif; width:100px; padding:10px;" />
</td></tr>
</table>
</td></tr>
<tr><td align="center"><font color="#333333" face="Tahoma, Geneva, sans-serif" size="2">
<table border="0" width="400"><tr><td>
<input type="radio" name="sozluk" value="Tr" checked="checked" />
Türkçe - İngilizce Çeviri</td>
<td>
<input type="radio" name="sozluk" value="İng" />
İngilizce - Türkçe Çeviri</td></tr></table>
</font></td></tr>
<tr height="60"><td align="center">
<iframe src="cevir.php" name="ceviri" width="520px" height="40px" frameborder="0"></iframe>
</td></tr>
</table>
</form>
$mysql_host="localhost";Burada öncelikle veritabanı bağlantı kodlarımızı yazdık. Ardından form ile gönderilen değerleri (girilen kelimeyi ve seçilen radio butonun değerini) POST metodu ile alıyoruz. Sayaç adında bir değişken oluşturup içine 0 değerini atıyoruz. Bunu yapmamızdaki amaç oluşturacağımız while döngülerinin kaç kez döndüklerini öğrenmek ve buna göre işlem yapmak. İlk if sorgumuzu oluşturuyoruz. Bu şartı oluşturmamızdaki amaç kullanıcının hangi dilde veri girdiğini öğrenmektir. Eğer tr ise farklı sorgulama ing ise farklı sorgulama yapacağız. Eğer kullanıcı türkçe bir kelime girdiyse bu kod bloğu aktif olacaktır.
$mysql_kullaniciadi="root";
$mysql_sifre="root";
$mysql_vtadi="sozluk";
$baglan= @mysql_connect($mysql_host,$mysql_kullaniciadi,$mysql_sifre);
mysql_query("SET NAMES UTF8");
if(! $baglan) die ("Mysql Baglantısında Hata Oluştu!");
mysql_select_db($mysql_vtadi,$baglan) or die ("Veritabanına Bağlanırken Hata Oluştu!");
$kelime = $_POST['kelime'];
$dil = $_POST['sozluk'];
$sayac = 0;
if ($dil == "Tr")
{
$sqlcevir = mysql_query("SELECT * FROM kelimeler where kelimetr = '$kelime'");
$varmi = mysql_num_rows($sqlcevir);
if ($varmi >= 1)
{
echo "".$dil." Çeviri : ".$kelime." » ";
while($ceviritr = mysql_fetch_array($sqlcevir))
{
$sayac++;
$kelimeing = $ceviritr['kelimeing'];
if ($sayac >= 2)
{
echo " - ";
}
echo $kelimeing;
}
}
else
{
echo "Lütfen Veritabanına Kayıtlı Bir Kelime Giriniz!";
}
}
else
{
$sqlcevir = mysql_query("SELECT * FROM kelimeler where kelimeing = '$kelime'");
$varmi = mysql_num_rows($sqlcevir);
if ($varmi >= 1)
{
echo "".$dil." Çeviri : ".$kelime." » ";
while($ceviriing= mysql_fetch_array($sqlcevir))
{
$sayac++;
$kelimetr = $ceviriing['kelimetr'];
if ($sayac >= 2)
{
echo " - ";
}
echo $kelimetr;
}
}else
{
echo "Lütfen Veritabanına Kayıtlı Bir Kelime Giriniz!";
}
}
İlk şartımızı oluşturduk ve şimdi geçelim veritabanı sorgulamamıza. Sql kodumuzu yazdık. Where ile kullanıcının girdiği kelimeyi kelimetr sütununda arattık. mysql_num_rows fonksiyonu ile kaç sonuç bulduğumuzu varmi değişkenine aktardık. Şimdi geçelim ikinci if sorgumuza. Bu şartla varmi değişkeninin içinde bir değer olup olmadığını öğrendik. Varsa while döngümüz hayata geçecek, yoksa lütfen veritabanına kayıtlı kelime giriniz tarzında bir uyarı alıncaktır. While döngümüz değer olduğu sürece dönecektir. Bir kelimenin birden fazla ingilizce veya türkçe karşılığı olabilir (giriş resminde göründüğü üzere). Hepsini listeletmek için döngümüzü bu şekilde kullandık. Döngümüzün içinde sonucu değişkene aktardık ve ekrana yazdırdık. Sayaç değişkenine gelelim şimdi. Burada sayaç kullanmamızın amacı, döngümüzün kaçıncı kez döndüğünü öğrenmek, yani o ana kadar kaç kayıt çekildiğini öğrenmek. Öğrenip napacağız diyebilirsiniz haklı olarak. Yukarıdaki kod blogunda görüldüğü üzere if sorgumuzu oluşturduk sayaç değişkenimiz 2'den büyük veya eşitse tire (-) ve boşluk (&nbsp;) karakterlerini ekrana yazdırdık.
İf sorgumuzu kullandığımız hali : insan » human - man
İf sorgumuzu kullanmadığımız hali : insan » humanman
Biraz önce bahsettiğim tire (-) ve boşluk (&nbsp;) karakterinin ne işe yaradığı anlaşılmıştır sanırım. Şuana kadar anlattığım kodlar ile kelimemizi türkçe'den ingilizce'ye çevirdik. Şimdi geçelim ingilizce'den türkçe'ye çevirmeye. Aslında aralarındaki farkı söylemem daha doğru olur. Tek yapmamız gereken sql kodunda yazdığımız kelimetr yerine kelimeing yazmak ve;
$kelimeing = $ceviritr['kelimeing']; // bunun yerinekodunu yazıp ekrana yazdırmak. Uygulamanın çalışır halini istek halinde paylaşabilirim. Sonraki makalede görüşmek üzere...
$kelimetr = $ceviriing['kelimetr'];
45 Yorum
phpkolik
Süper!
tuncay
Ağabey bu e-postaya çalışır halini gönderirimisin.Halledemedim de.Benim proje ödevim bu.Yollarsan çk buyuk duacın olurum:D
Aykut Erdoğan
E-mail olarak gönderilmistir.
Yusuf Yetişen
Zamanında bunu asp kodlama sisteminde çalıştırmıştım,phpye yeni yeni alışıyorum bu sıralar makalenizle bişeyler yapmaya çalışacağım :)
ahmet
Merhabalar, bana acilen lazım. Bu uygulamanın çalışır haline mail dosya eki olarak gönderebilirmisin? Malesefki lazım. Şimdiden Teşekkürler
Emin
Uygulamanın calısan versiyonunu paylasma imkanın olursa cok makbule gecer saygılarımla
Aykut Erdoğan
E-Mail adreslerinize gönderilecektir.
Rıdvan
Uyguladım fakat sanırım cevir.php de hata yaptım. sonuç vermesi gereken yerde kodlar görünüyor. Çalışır halini atarsanız sevinirim :)
Aykut Erdoğan
Mail adresine gönderildi
Bahtiyar Yıldız
Banada göndersen
Bahtiyar Yıldız
Veri tabanınınınn hazırlanmış halini göndersen
Aykut Erdoğan
Mail olarak gönderilmiştir.
Sinan Yılmaz
Sozlugun hazırlanmış halini bana gönderirmisin veri tabanının hazırlanmış halide olsun gönderirsen büyük duacın olurum abi
Bahtiyar Yıldız
Bunu phpMyAdmine nasıl bağlicaz abi
izzet karaman
abi çalışır kodları mail adresine atarsan mutlu olurum.
izzet karaman
ABİ selamun aleykum çalışır kodları mail adresine atarsan mutlu olurum şimdiden allah razı olsun
izzet karaman
abi mail adresine yollarmısın çalışşırkodları acilllll
bir dost
abi bunlara bişey verme projemizi çalcaklar abi bunlar hırsız
izzet karaman
cocuk musunuz olum ne projesi çalması hahahhah :) ödev için istedik sadece
Aykut Erdoğan
Hepinize gönderdim, başarılar dilerim.
sümeyye demir
çalışır halini gönderir misiniz?
Aykut Erdoğan
Tarafınıza gönderilmiştir.
denis can
çalışır kodları mail adresine atabilir misiniz? teseükkürler.
Aykut Erdoğan
Gönderilmiştir.
barış
aykut erdoğan kardeş benimde proje ödevim çalışır halini mail olarak atabilirmisin [email protected]
ümit başak
[email protected] bu e postaya gönderirmisiniz
Aykut Erdoğan
Mail olarak gönderilmiştir.
utku çatal
[email protected] a mail oalrak gönderirmisiniz
Aykut Erdoğan
Tarafınıza gönderilmiştir.
ahmet turan
çalışır kodları mail adresine atabilir misiniz? tesekkur
Aykut Erdoğan
Gönderilmiştir.
Eda Yıldırım
Mail olarak gönderebilir misiniz ? Şimdiden teşekkürler..
Aykut Erdoğan
Gönderilmiştir.
cemal güngör
Abi mailime yollarmısın çalışır halini çok zor durumda kaldım lütfen.
Aykut Erdoğan
Gönderilmiştir.
salih yüksel
eposta olarak alabilir miyim
serdar
dostum bende alabilirmim...
Aykut Erdoğan
Gönderilmiştir.
yakup
hocam benim proje ödevi zahmet olmasa gönderebilirmisiniz
yunus
kodların indirme linkini verebilirmisiniz
Aykut Erdoğan
Mail olarak gönderilmiştir.
MaviHis
Hazılır kodaları gönderebilir misiniz
Aykut Erdoğan
Mail adresinize gönderildi.
Ahmet K.
Sözlüğün çalışır halini yollanma imkânınız olursa çok memnun olurum.
Mehmet A
Merhaba, Sözlüğer ait DB oluşturma query sini paylaşabilirmisiniz?