• 24-10-2007, 23:12:32
    #1
    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

    <?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
    //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&thorn;kenine gelen verinin sag&yacute;ndaki ve solundaki bo&thorn;lukar&yacute; 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
    /// &thorn;imdi mysql de sorgumuzu yap&yacute;yoruz burda like &yacute;n ba&thorn;&yacute;ndaki ve sonundaki % i&thorn;aretleri arad&yacute;g&yacute;m&yacute;z kelimenin ba&thorn;&yacute;nda ve sonunda ar&yacute;yacak &thorn;eklide tasarl&yacute;yoruz  
    $sql = mysql_query("select * from oyunlistesi WHERE baslik like '%".$kelime."%' "); 
    
    
    
    /// mysql_num_rows ile kaç sat&yacute;r buldugumuz kontrol ediyoruz 
    $bulunan = mysql_num_rows($sql);
    
    
    /// eger 1 veya üstü sat&yacute;r bulmu&thorn; ise a&thorn;ag&yacute;daki if yap&yacute;m&yacute;zla sorgumuzu derliyoruz 
    if($bulunan >='1'){
    
    /// while ile dongumuzu yarat&yacute;p  gelen kay&yacute;t kadar dongu yap&yacute;yoruz  mysql_fetch_array lada gelen veriyi kullan&yacute;labilr bir veri cinsine sokuyoruz 
    
    /// alan lardaki degi&thorn;kenlerimizi tan&yacute;ml&yacute;yal&yacute;m  daha basit olmas&yacute; için ben bu &thorn;eklide kullan&yacute;yorum ama sen bu degi&thorn;kenleri
    ///  $row["yazan_ismi"]; gibide kullanabilirsin 
    
    
    /// echo komutuylada sayfada ç&yacute;kt&yacute; al&yacute;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&yacute;d&yacute;gm&yacute;z if yap&yacute;s&yacute;nda eger sorgulad&yacute;g&yacute;m&yacute;z sat&yacute;r 0 degeri içeriyorsa
    ///   kay&yacute;t olmad&yacute;g&yacute;n&yacute; anlay&yacute;p  kay&yacute;t bulunamad&yacute; 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>";
    
    ?>
  • 24-10-2007, 23:40:12
    #2
    ben php bilmem ama. mantıken söyliyim.
    o ingilizceye çevrilen metni duzenlenen sütununa eşitletip , o satırdaki diğer sütun olan aranan sütununu çekiceksin. tam anlatamadım ama anlamışsındır umarım
  • 25-10-2007, 00:07:59
    #3
    sağolasın dostum,
    Ama işte benimde pek php bilgim yok
  • 25-10-2007, 02:35:45
    #4
    <a href="oyunlar-15-<? echo "".duzenle($row[listeid]).""; ?>.html">

    Fonksiyon yazmışsın ama linklerinde kullanmamışsın

    yukarıdaki gibi yapacaksın