• 09-05-2008, 09:32:20
    #1
    Üyeliği durduruldu
    Merhaba,
    yakın kelimelerde benzeşik olanları listelemek istiyorum.
    Sınırlandırma 5 tane olacak.

    ben benzer konuları listelemek için şu şekilde kod yazdım ama kısmen bir yerde kod eksiğim var.
    bu kodların çalışması için ve istediğim şekilde sonuç vermesi için neresini düzeltmem gerekecek ?
    not: olası en yakın konuları listelemesini istiyorum.yani yakınlık derecesi en azından 20% falan olsa yeterli

    tablo adı: yazılar
    değişkenler = $id, $baslik

    <?
    # Benzer konular listeleniyor...
    $benzer = substr($baslik, 0, 4);
    $sql=("select * from yazilar where baslik LIKE '$baslik%'");
    while($sql=mysql_fetch_array()){
    $id=$sql['id'];
    $baslik=$sql['baslik'];
    echo "$baslik";
    // Adi Devamlı Burada Degiserek Donecektir ; )
    }
    
    ?>
  • 09-05-2008, 13:20:55
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    php'nin bu iş için kullanılan bir eşleştirme fonksiyonu olacaktı manual'den bakarsan bulabilirsin.
  • 09-05-2008, 13:34:59
    #3
    Misafir
     <? 
       $baslik = "Ceviz.net in benzer konuları çağırma mantığı nedir?"; 
       $baslik = explode(" ",trim($baslik)); 
    
       foreach($baslik as $no => $kelime){ 
          $kelime = trim($kelime); 
          $alan[] = "@a$no:=IF(baslik LIKE '%$kelime%') AS a$no"; 
          $sira[] = "@a$no"; 
          $sart[] = "baslik LIKE '%$kelime%'"; 
       } 
    
       $alan = implode(", ",$alan); 
       $sira = "(".implode(" + ",$sira).") AS sira"; 
       $sart = "(".implode(" OR ",$sart).")"; 
    
       $sorgu = " 
          SELECT 
             konu.*, 
             $alan, 
             $sira 
          FROM konu 
          WHERE 
             $sart 
          ORDER BY sira DESC 
          LIMIT 0, 5 
       "; 
    
       //... 
    ?> 
    ceviz.net'te buldum bunu işini görür bu..
    Orjinal link Ceviz Forum - View Single Post - Benzer Konu Mantığı Nasıl İşliyor.
  • 09-05-2008, 13:55:42
    #4
    Üyeliği durduruldu
    yakoSin adlı üyeden alıntı: mesajı görüntüle
     <? 
       $baslik = "Ceviz.net in benzer konuları çağırma mantığı nedir?"; 
       $baslik = explode(" ",trim($baslik)); 
       foreach($baslik as $no => $kelime){ 
          $kelime = trim($kelime); 
          $alan[] = "@a$no:=IF(baslik LIKE '%$kelime%') AS a$no"; 
          $sira[] = "@a$no"; 
          $sart[] = "baslik LIKE '%$kelime%'"; 
       } 
       $alan = implode(", ",$alan); 
       $sira = "(".implode(" + ",$sira).") AS sira"; 
       $sart = "(".implode(" OR ",$sart).")"; 
       $sorgu = " 
          SELECT 
             konu.*, 
             $alan, 
             $sira 
          FROM konu 
          WHERE 
             $sart 
          ORDER BY sira DESC 
          LIMIT 0, 5 
       "; 
       //... 
    ?> 
    ceviz.net'te buldum bunu işini görür bu..
    Orjinal link Ceviz Forum - View Single Post - Benzer Konu Mantığı Nasıl İşliyor.

    Çok fazla anladığm söylenemez bu kodlardan
    biraz kurcaladım ama sonuç üretmiyor, boş ekran çıktısı veriyor.
  • 10-05-2008, 09:56:53
    #5
    Üyeliği durduruldu
    durumu hala çözemedim, yardımlarınızı bekliyorum
  • 10-05-2008, 10:36:17
    #6
    Üyeliği durduruldu
    birde bunu dene
    $basliklike=array();
    $parcala=exlode(' ',trim($baslik));
    foreach($parcala as $x){
    $basliklike[]="baslik like '%$x%'";
    }
    $baslikk=implode(' OR ',$basliklike);
    $sql=mysql_query("select * from yazilar where ($baslikk)");
    while($row=mysql_fetch_object($sql)){
    echo $row->baslik;
    }
    fulltext aramasıylada bulunabilir benzer konular...
  • 10-05-2008, 11:30:50
    #7
    Üyeliği durduruldu
    sweatcell adlı üyeden alıntı: mesajı görüntüle
    birde bunu dene
    $basliklike=array();
    $parcala=exlode(' ',trim($baslik));
    foreach($parcala as $x){
    $basliklike[]="baslik like '%$x%'";
    }
    $baslikk=implode(' OR ',$basliklike);
    $sql=mysql_query("select * from yazilar where ($baslikk)");
    while($row=mysql_fetch_object($sql)){
    echo $row->baslik;
    }
    fulltext aramasıylada bulunabilir benzer konular...
    $parcala=exlode(' ',trim($baslik));
    burada hata kodu veriyor

    Fatal error: Call to undefined function: exlode() in C:\AppServ\www\betik\index.php on line 280
  • 10-05-2008, 11:37:29
    #8
    Üyeliği durduruldu
    yanlış yazmışım explode olarak değiştir.
  • 10-05-2008, 11:38:26
    #9
    Üyeliği durduruldu
    tamam bir hatayı buldum, exlode yazmışız.. araya p harfini koyunca hata kodu değişti
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\betik\index.php on line 286

    doğru olan hata kodu :
    while($row=mysql_fetch_object($sql)){

    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\betik\index.php on line 286