• 05-10-2008, 19:59:20
    #1
    arkadaşlar benim proğram sitem var sitemde arama yapıldığında direk kelimeyi arıyor arama şekli şu şekilde
        if (!$pid) $sql="Select* from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%' or etiket like '%$query%') order by tarih desc 
    limit $alt,$max";
    else $sql="Select * from program where (isim like '%$query%' or aciklama like '%$query%' or tags '%$query%' or etiket like '%$query%') and altkat = '$kid' order 
    by tarih desc limit $alt,$max";
    if (!$pid) $sql2="Select* from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%' or etiket like '%$query%')";
    else $sql2="Select* from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%' or etiket like '%$query%') and altkat = '$kid'";
    $q=mysql_query($sql);
        $sql22=mysql_query($sql2);
        $nr2=mysql_num_rows($sql22);
    echo mysql_error(); 
            
        if($nr2 == 0) {
    başka arama sitelerinde baktım 1. kelime yoksa 2. kelimeyi de arıyor mesela hasan 2008 yazdım hasan yoksa 2008 yazanları arıyor
    Program download | Roketdownload.com un araması gibi
    nasıl yapabilirim

    onun arama yapısı sanırım altaki gibi
    if($kategori == 0)
    {
    $dnm = mysql_query("SELECT *, MATCH(prog, fulldesc, etiket, url_down) AGAINST('$q') AS skor FROM progs WHERE MATCH(prog, fulldesc, etiket, url_down) AGAINST('$q') AND status=1 ORDER BY skor DESC limit $baslangic,$sayfada_gosterilecek_program_sayisi") or die(mysql_error());
    $dnm2 = mysql_query("SELECT * FROM progs WHERE MATCH(prog, fulldesc, etiket, url_down) AGAINST('$q') AND status = 1");
    }
    else
    {
    $dnm = mysql_query("SELECT *, MATCH(prog, fulldesc, url_down) AGAINST('$q') AS skor FROM progs WHERE MATCH(prog, fulldesc, url_down) AGAINST('$q') AND status=1 AND catid='$kategori' ORDER BY skor DESC limit $baslangic,$sayfada_gosterilecek_program_sayisi") or die(mysql_error());
    $dnm2 = mysql_query("SELECT * FROM progs WHERE MATCH(prog, fulldesc, url_down) AGAINST('$q') AND status=1 AND catid='$kategori'");
    }
    
    $sonuc = mysql_num_rows($dnm);
    $program_sayisi = mysql_num_rows($dnm2);
    echo(mysql_error());
  • 06-10-2008, 17:49:31
    #2
    yokmu yardımcı olabilecek arkadaş
  • 06-10-2008, 18:23:38
    #3
    Bu işini görür sanırım.
    $kelime ="ali veli" ;
    $kelimeler = explode(' ', $keyword); 
    foreach ($kelimeler as $anahtar=>$query) { 
    if (!$pid) $sql="Select* from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%' or etiket like '%$query%') order by tarih desc 
    limit $alt,$max";
    else $sql="Select * from program where (isim like '%$query%' or aciklama like '%$query%' or tags '%$query%' or etiket like '%$query%') and altkat = '$kid' order 
    by tarih desc limit $alt,$max";
    if (!$pid) $sql2="Select* from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%' or etiket like '%$query%')";
    else $sql2="Select* from program where (isim like '%$query%' or aciklama like '%$query%' or tags like '%$query%' or etiket like '%$query%') and altkat = '$kid'";
    $q=mysql_query($sql);
        $sql22=mysql_query($sql2);
        $nr2=mysql_num_rows($sql22);
    echo mysql_error(); 
        if($nr2 == 0) {
    }