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?