Php Sözlük Uygulaması
Php

Php Sözlük Uygulaması

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">
<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" />&nbsp;&nbsp;
Türkçe - İngilizce Çeviri</td>
<td>
<input type="radio" name="sozluk" value="İng" />&nbsp;&nbsp;
İ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>
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.
$mysql_host="localhost";
$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 : &nbsp;".$kelime."&nbsp;&nbsp;&raquo;&nbsp;&nbsp;";
while($ceviritr = mysql_fetch_array($sqlcevir))
{
$sayac++;
$kelimeing = $ceviritr['kelimeing'];
if ($sayac >= 2)
{
echo "&nbsp;-&nbsp;";
}
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 : &nbsp;".$kelime."&nbsp;&nbsp;&raquo;&nbsp;&nbsp;";
while($ceviriing= mysql_fetch_array($sqlcevir))
{
$sayac++;
$kelimetr = $ceviriing['kelimetr'];
if ($sayac >= 2)
{
echo "&nbsp;-&nbsp;";
}
echo $kelimetr;

}
}else
{
echo "Lütfen Veritabanına Kayıtlı Bir Kelime Giriniz!";
}
}
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.
İ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 (&amp;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 (&amp;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 yerine
$kelimetr = $ceviriing['kelimetr'];
kodunu yazıp ekrana yazdırmak. Uygulamanın çalışır halini istek halinde paylaÅŸabilirim. Sonraki makalede görüÅŸmek üzere...


author

Aykut Erdoğan

sözlük, php, mysql, çeviri

  • Bu Yazılara da Gözat:

    45 Yorum

    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author
    author

    Cevapla