Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
karakter kaldı

Php ile gelişmiş arama

Merhaba , şarkı veya akor sitelerinden örnek verecek olursam , aşağıdaki kod ile sadece şarkı adı veya sanatçı adına göre arama yapabiliyorum , yani şarkısını bulursa yada şarkıcısını bulursa sonuç veriyor.

Örneğin ; " iki yabancı teoman " şeklinde arattırdığım zaman sonuç bulunamıyor. Ama sadece " iki yabancı " veya "teoman" olarak arattırdığım zaman sonuçlar listeleniyor. İstediğim ziyaretçi iki yabancı teoman yazıncada o sonuca gitmesi.

Fikir ve yardımlarınız için şimdiden teşekkürler.


$bul = mysql_query("select * from konular inner join kategoriler on konular.kat_id=kategoriler.id where konu_baslik like '$aranan%' or konu_baslik_sef like '$aranan%' or  kat_adi like '$aranan%' or kat_sef like '$aranan%' limit 100");
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • Avatar of sevketbulamaz
    5 ay önce
    48 cevap - 0 soru
    aramayı "iki yabancı teoman" şekliğinde yaptırdığın için sonuç döndüremiyorsun. gelen arama cümlesini boşluklardan böl ve arama sqlini böldüğün sonuçlarla tek tek dene. çıkan sonuçları bir arrayde topla sonra çıktı al. bu durumda "iki" "yabancı" "teoman" için 3 farklı arama yapman gerekecek. tabiki bu yöntem maliyetli olacaktır. daha güclü bir arama için kendine uygun arama algoritmasını internetten araştırarak uygulamana uyarlayabilirsin ancak en basit ve malesef en maliyetli yöntem yukarıda anlattığım yöntem. kolay gelsin.
    • Avatar of GokhanKaracam GokhanKaracam
      Cevabınız için teşekkürler, dediğiniz algoritmayı kodlamak için şuan yeterli değilim.Elinde benzer örnekler olan arkadaşlardan paylaşmalarını rica ediyorum.
      5 ay önce yazılmış
    • Avatar of Hasan Hasan
      Here we have a simple PHP search algorithm that queries a MySQL database and outputs the result. It is a simple alternative to using the FULLTEXT search feature of MySQL.
      
      The script autmatically takes into consideration how many search words are in the search string which is submitted from the HTML search form. It then creates a MySQL query and executes it, displaying the results. You can easily edit the fields that the search script searches by changing the values in the $arrayFields array.
      
      <?php
      // checks if a search has been submitted
      if(!empty($_REQUEST['search']))
      {
        // the table to search
        $table = "yourTable";
        // explode search words into an array
        $arraySearch = explode(" ", $search);
        // table fields to search
        $arrayFields = array(0 => "title", 1 => "content");
        $countSearch = count($arraySearch);
        $a = 0;
        $b = 0;
        $query = "SELECT * FROM ".$table." WHERE (";
        $countFields = count($arrayFields);
        while ($a < $countFields)
        {
          while ($b < $countSearch)
          {
            $query = $query."$arrayFields[$a] LIKE '%$arraySearch[$b]%'";
            $b++;
            if ($b < $countSearch)
            {
              $query = $query." AND ";
            }
          }
          $b = 0;
          $a++;
          if ($a < $countFields)
          {
            $query = $query.") OR (";
          }
        }
        $query = $query.")";
        $query_result = mysql_query($query);
        // print title
        echo '<h1>Your Search Results</h1>'."\n\n";
        if(mysql_num_rows($query_result) < 1)
        {
          echo '<p>No matches found for "'.$search.'"</p>';
        }
        else
        {
          echo '<p>Search Results for "'.$search.'":</p>'."\n\n";
          // output list of articles
          while($row = mysql_fetch_assoc($query_result))
          {
            // output whatever you want here for each search result
            echo '<a href="index.php?id='.$row['id'].'">'.$row['title'].'</a><br />';
          }
        }
      }
      else
      {
        // display a welcome page
      }
      ?>
      
      <p><form method="get">
        <input type="text" name="search" value="<?php echo $_REQUEST['search'] ?>" />
        <input type="submit" value="Search" />
      </form></p>
      
      This PHP script produces and executes the following MySQL query when given a search input of "really cool php scripts". "title" and "content" are the two fields that are being searched upon. 
      
      SELECT * FROM articles WHERE (title LIKE '%really%' AND title LIKE '%cool%' AND title LIKE '%php%' AND title LIKE '%scripts%') OR (content LIKE '%really%' AND content LIKE '%cool%' AND content LIKE '%php%' AND content LIKE '%scripts%')
      



      İşini görebilir.
      5 ay önce yazılmış