• 23-01-2007, 18:49:49
    #1
    Üyeliği durduruldu
    Kodu Böyle olan bir arama scripti var google benzeri. Benik yapmak istedeğim aramalarını ve arama url'sini database'e kaydetmek. Script sql kullanmıyor yani tablo falan hiç yok. Aranan kelimeleri yani arama değeri (galiba $q) ve aramanın Urlsi (galiba $url) 'ni databasede olusturdugum tablo icine nasıl kaydedebilirim....

    <?
    
    
    if($_GET) { extract($_GET, EXTR_PREFIX_SAME, "get_"); }
    if($_POST) { extract($_POST, EXTR_PREFIX_SAME, "post_"); }
    
    if ($yourGoogleKey == "insert your Google key here") { 
      echo "You didn't insert a Google Key Yet ! Get one at www.google.com/apis/ ..";
      break;
    }
    
    if ($query && $www) {
    
      $q = urldecode($query);
      if ($www != "true") { $q.= " site:$yourWebsite"; }
      if(!$start) { $start=0; } else { $start = intval($start); }
    
      $parameters = array( 
        "q"           => $q,               // search query
        "start"       => $start,           // result start index
        "maxResults"  => 10,               // 10 is the maximum
        "filter"      => false,            // filtering similar entries
        "restrict"    => "",               // country and topic restrictions
        "safeSearch"  => false,            // ***** content filter
        "lr"          => "",               // language restrictions
        "ie"          => "",               // deprecated and ignored parameter
        "oe"          => ""                // deprecated and ignored parameter
      );
    
      $soapclient = new soapclient("http://api.google.com/search/beta2");
      $result = $soapclient->call("doGoogleSearch", $parameters, "urn:GoogleSearch");
      $begin = $start + 1;
      $end = $start + $parameters["maxResults"];
      $total = $result["estimatedTotalResultsCount"];
    }
    
    
    //----------------------------------------------------------------------------------------------
    // html headers, stylesheet and search form
    //----------------------------------------------------------------------------------------------
    
    
    
    ?>
    
    
    <?php include("header_search.php");?>
    
    
    <? 
    
    //----------------------------------------------------------------------------------------------
    // display results table if a search has been done
    //----------------------------------------------------------------------------------------------
    
    if ($query && $www) {
    
      echo "<table width=\"609\" cellspacing=\"0\" cellpadding=\"10\" border=\"0\">\n";
      echo "<tr class=\"row\"><td width=\"90%\" class=\"row\"></td></tr>\n";
      
    
      if ($total == 0){
      	echo "<tr><td class=\"alert\">Your search returned no results ..</td></tr>\n";
      }
      
      if ($total > 0) {
        $result = $result["resultElements"]; 
        for ($i = 0; $i < $parameters["maxResults"]; $i++) {
          $element = $result[$i];
          $url = $element["URL"];
          $title = $element["title"];
          $snippet = $element["snippet"];
          if ($url != "") {
    	    
    		   echo "<tr>\n"; 
    		
    		echo "<td><span class='list'>".($i+$begin).".</span> <a href='$url' class='link'>$title</a><br><span class='gray_small'>$snippet</span><br><a href='$url' class='link_small'>$url</a></td></tr>\n";
          } 
    	}
      }
           
    
      echo "<tr><td><br>";
      if($begin > 1) { echo "<a href=\"google.php?query=$query&www=$www&start=".($start - 10)."\">previous 10 results</a> | "; } 
      echo "showing $begin to $end of $total results";
    
      if ($end < $total) { echo " | <a href=\"search.php?query=$query&www=$www&start=".($start + 10)."\">next 10 results</a>"; }
      echo "</td></tr>\n";
      
      echo "</table>";
    }
    
    
    ?>
    
    <?php include("footer_search.php");?>
  • 23-01-2007, 18:50:52
    #2
    Üyeliği durduruldu
    eksik bir kısım varsa ekleyebilirim...
  • 23-01-2007, 18:54:05
    #3
    $aranan=addslashes($_GET['q']);// adres satırından aranan kelimeyi alalım.içinde tırnak vb şeylere karşı addslashes kullandık
    //sql bağlantı işlemleri
    if($aranan){//eğer bişey aranmışsa daha önceden oluşturduğumuz tabloya kaydedelim
     $islem="INSERT INTO tablo_adi (id,aranan) VALUES ('','$aranan')";
    $sonuc=mysql_query ($islem);
    }
  • 23-01-2007, 19:15:40
    #4
    Kurumsal PLUS
     $islem="INSERT INTO tablo_adi (id,aranan) VALUES ('','$aranan')";
    yerine;

    $islem = sprintf("INSERT INTO tablo_adi (aranan) VALUES ('%s')", $aranan);
    kullanılırsa daha sağlıklı olur.

    tabi tabloda id değerini auto_increment yapmalısın.
  • 23-01-2007, 19:23:54
    #5
    Üyeliği durduruldu
    <?
    $baglanti = mysql_connect ("localhost","root","xxsifrexx");mysql_select_db ("deneme",$baglanti);
    $sorgu = mysql_query ("SELECT * FROM aranan");
    //asagidaki fonksiyon $sorgu degiskenine atanan kayit dizisinde //kaç tane kayit oldugunu verir
    $toplam_donen_kayit_sayisi= mysql_num_rows ($sorgu); //for döngüsü ile bütün kayitlari listeleyelim 
    for ($i=0;$i < $toplam_donen_kayit_sayisi;$i++)
    {
    $aranan = mysql_result ($sorgu,$i,"aranan");
    echo "<a href=../google/search.php?query=$aranan&www=true>$aranan</a> | " ;
    }
    ?>
    Bu kod oku.php icine yazdığım kod
    Son satırda $aranan kısmına link veriyorum. Tek kelimelilerde sorun yok. Mesela doktor olunca adres:
    http://localhost/google/search.php?q...oktor&www=true
    ama kelimeli birseyde mesela doktor olmak için adres
    http://localhost/google/search.php?query=doktor
    Oluyor. Doktor kısmından sonra gelen boşluktan sonrasını siliyor.

    Ve "işte öyle" gibi türçe karaktar içeren aramaları database'e bozuk atıyor.
    işte öyle seklinde ....
  • 23-01-2007, 23:01:09
    #6
    Kurumsal PLUS
    <?
    $baglanti = mysql_connect ("localhost","root","xxsifrexx");
    mysql_select_db ("deneme",$baglanti);
    $sorgu = mysql_query ("SELECT * FROM aranan");
    //asagidaki fonksiyon $sorgu degiskenine atanan kayit dizisinde //kaç tane kayit oldugunu verir
    $toplam_donen_kayit_sayisi= mysql_num_rows ($sorgu); //for döngüsü ile bütün kayitlari listeleyelim 
    for ($i=0;$i < $toplam_donen_kayit_sayisi;$i++)
    {
    $aranan = mysql_result ($sorgu,$i,"aranan");
    echo "<a href=../google/search.php?query=".$aranan."&www=true>".$aranan."</a> | " ;
    }
    ?>
    yaparsan daha sağlıklı olur.
  • 24-01-2007, 11:58:26
    #7
    Üyeliği durduruldu
    Bartuc adlı üyeden alıntı: mesajı görüntüle
    <?
    $baglanti = mysql_connect ("localhost","root","xxsifrexx");
    mysql_select_db ("deneme",$baglanti);
    $sorgu = mysql_query ("SELECT * FROM aranan");
    //asagidaki fonksiyon $sorgu degiskenine atanan kayit dizisinde //kaç tane kayit oldugunu verir
    $toplam_donen_kayit_sayisi= mysql_num_rows ($sorgu); //for döngüsü ile bütün kayitlari listeleyelim 
    for ($i=0;$i < $toplam_donen_kayit_sayisi;$i++)
    {
    $aranan = mysql_result ($sorgu,$i,"aranan");
    echo "<a href=../google/search.php?query=".$aranan."&www=true>".$aranan."</a> | " ;
    }
    ?>
    yaparsan daha sağlıklı olur.

    Teşekkürler ama yine aynı nata oluyor Kardeş...