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

Php çok seçenekli arama

Merhaba arkadaşlar
Php ile çok seçenekli arama yapmak istiyorum
Normal arama yapabiliyorum ama seçeneklide uğraşmama rahmen sonuç alamadım.
Şu şekilde bir arama panelim var.

Mantığı nasıldır acaba
Şu şekilde deniyorum ama bir sonuç alamıyorum
Bir şey bulunamadı hatası veriyor aynı zamanda
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\sistem\sistem.php on line 263
$hocaSay = mysql_num_rows($hocabul); burada hata veriyor yani sql sorgumda dolaylı olarak.
<!--Arama_Panel-->
	<div class="arama_panel">
		<div class="arama_baslik"><img src="<?php echo $GLOBALS["site_tema"]; ?>/images/search.png" alt="arama" /><span>Istediginiz kritelere göre arama yapabilirsiniz</span></div>
		<div class="sag_yazi_alan">
		<form action="index.php?git=panel_arama" method="post">
		<span  class="select_baslik">Ilçe Seçiniz</span>
		<span><select name="ilce" class="select"> 
		<option value="Istanbul">Istanbul</option> 
		<option value="Ankara">Ankara</option> 
		<option value="Denizli">Denizli</option> 
		<option value="Bursa">Bursa</option> 
		</select>
		</span>
		<span class="select_baslik">Ders Seçiniz</span>
		<span><select  name="ders" class="select"> 
		<option value="Istanbul">Istanbul</option> 
		<option value="Ankara">Ankara</option> 
		<option value="Denizli">Denizli</option> 
		<option value="Bursa">Bursa</option> 
		</select>
		</span>
		<span  class="select_baslik">Seviye Seçiniz</span>
		<span><select name="seviye" class="select"> 
		<option value="Istanbul">Istanbul</option> 
		<option value="Ankara">Ankara</option> 
		<option value="Denizli">Denizli</option> 
		<option value="Bursa">Bursa</option> 
		</select>
		</span>
		<span  class="select_baslik">Cinsiyet Seçiniz</span>
		<span><select name="cinsiyet" class="select"> 
		<option value="Istanbul">Istanbul</option> 
		<option value="Ankara">Ankara</option> 
		<option value="Denizli">Denizli</option> 
		<option value="Bursa">Bursa</option> 
		</select>
		</span>
		<input type="image" src="<?php echo $GLOBALS["site_tema"]; ?>/images/arama.png" class="ara_button" alt="Submit" />
		</form>
		</div>
	</div>
	<!--#Arama_Panel-->
	



	if ($_POST){
	
		$ilce = strip_tags(trim($_POST["ilce"]));
		$ders = strip_tags(trim($_POST["ders"]));
		$seviye = strip_tags(trim($_POST["seviye"]));
		$cinsiyet = strip_tags(trim($_POST["cinsiyet"]));
	
			$hocabul= mysql_query("select * from site_uye where ilce like '%$ilce%' or ders like '%$ders%' or seviye like '%$seviye%' or cinsiyet like '%$cinsiyet%'");
			$hocaSay = mysql_num_rows($hocabul);
			if ($hocaSay > 0){
			
				while ($goster = mysql_fetch_array($hocabul)){
					extract($goster);		
					$ilce = stripslashes($baslik);
					$ders = stripslashes($ders);
					$seviye = stripslashes($seviye);
					$cinsiyet = stripslashes($cinsiyet);


				}
			
			}else {
				bilgi("Bir Sorun Var","Hiçbişey bulunamadı!");
			}
		}
	
	

}
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • skuru adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    11 cevap - 2 soru
    yazdığın şekilde bütün selectbox degerlerini göndremen gerekiyo sanırım.

    $kosul = 'where';
    if(!empty($ilce))
    {
        $kosul .= " or ilce like '%".$ilce."%'";
    }
    if(!empty($ders))
    {
        $kosul .= " or ders like '%".$ders."%'";
    }
    if(!empty($seviye))
    {
        $kosul .= " or seviye like '%".$seviye."%'";
    }
    if(!empty($cinsiyet))
    {
        $kosul .= " or cinsiyet like '%".$cinsiyet."%'";
    }
    
    $hocaBul = mysql_query("select * from site_uye ".$kosul);
    
    

    bi bunu koduna ekleyerek dener misin ??
    • b4d3k35 adlı üyenin fotoğrafı b4d3k35
      malesef yine sorgu hatası veriyor hocam.
      bu tarz bir örnek varmıdır elinizde uyarlamaya çalışsam.
      11 yıl önce yazılmış
    • skuru adlı üyenin fotoğrafı skuru
      verdiği sql hatasını yazarmısın ?? elimdeki örneklerdede ben bu şekilde uyguluyorum. bu arada verilerin sayfaya gittinden eminsin dimi? yani $ilce $cinsiyet vs. gönderdiğinde arama sayfasında bu verileri elde ediyosun dimi.. oda garanti olsun.. ona göre yön çizelim çözümümüze
      11 yıl önce yazılmış
    • b4d3k35 adlı üyenin fotoğrafı b4d3k35
      Evet post verilerini alıp ekrana basabiliyorum
      Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\sistem\sistem.php on line 281

      şu hatayı veriyor sonuç varmı yok mu diye saydırdığım satırda.
      11 yıl önce yazılmış
    • skuru adlı üyenin fotoğrafı skuru
      echo ile yazdığın sorguyu ekrana bastırırmısın. echo("select * from site_uye ".$kosul); şeklinde bu ekranda degerlerle beraber sorgunu gösterecektir buradanda sorgunun neresinde hata var görbiliriz
      11 yıl önce yazılmış
    • b4d3k35 adlı üyenin fotoğrafı b4d3k35
      select * from site_uye where or ilce like '%Istanbul%' or seviyeler like '%Baslangic%' or cinsiyeti like '%Bayan%'

      şu çıktıyı verdi.
      11 yıl önce yazılmış
    • skuru adlı üyenin fotoğrafı skuru
      select * from site_uye where or ilce like '%Istanbul%' or seviyeler like '%Baslangic%' or cinsiyeti like '%Bayan%'
      hata where den sonraki or dan kaynaklı.şöyle yapalım.

      $kosul = '';
      if(!empty($ilce))
      {
      if(strlen($kosul)<1)
      {
      $kosul .= "where ilce like '%".$ilce."%'";
      }
      else
      {
      $kosul .= "or ilce like '%".$ilce."%'";
      }
      }
      bunu diğer gelen verilerine uygula sanırım olucak.:)
      11 yıl önce yazılmış
    • b4d3k35 adlı üyenin fotoğrafı b4d3k35
      aynen oldu bu sefer
      Senin cevabını bekler bende şöyle yaptım

      $hocaBul = mysql_query("select * from site_uye where
      ilce like '%$ilce%' || v_dersler like '%$v_dersler%' || seviyeler like '%$seviyeler%' || cinsiyeti like '%$cinsiyeti%'");

      aynı sonucu veriyor.
      Çok sağolasın.
      Baya bir uğraştırdı :)
      11 yıl önce yazılmış

Cevaplar

  • b4d3k35 adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    10 cevap - 18 soru
    Hocam uzun zaman olmuş ama
    Kodlar şu şekilde ilçe kısmında sadece istanbul yapıyorum ankarayıda gösteriyor
    Sadece bayan yapıyorum erkek leride gösteriyor
    $kosul .= "or ilce like '%".$ilce."%'";
    buradaki or > and yapıyorum bu sefer hiç sonuç bulamıyor.

    Ben istiyorum ki.
    Sadece istanbul yaparsa İstanbuldaki tüm erkek bayan
    Sadece İstanbul Erkek yaparsa İstanbuldaki Erkek
    Sadece Başlangış seviyesi dediğinde seviyesi başlangıç olan öğretmenler.

    Bu tarz bir arama sistemini nasıl yapabilirim.

    Kodlarım Bunlar
    $kosul = ''; 
    if(!empty($ilce)) 
    { 
    if(strlen($kosul)<1) 
    { 
    $kosul .= "where ilce like '%".$ilce."%'"; 
    } 
    else 
    { 
    $kosul .= "or ilce like '%".$ilce."%'"; 
    } 
    }
    if(!empty($ilce)) 
    { 
    if(strlen($kosul)<1) 
    { 
    $kosul .= "where v_dersler like '%".$v_dersler."%'"; 
    } 
    else 
    { 
    $kosul .= "or v_dersler like '%".$v_dersler."%'"; 
    } 
    }
    if(!empty($ilce)) 
    { 
    if(strlen($kosul)<1) 
    { 
    $kosul .= "where seviyeler like '%".$seviyeler."%'"; 
    } 
    else 
    { 
    $kosul .= "or seviyeler like '%".$seviyeler."%'"; 
    } 
    }
    if(!empty($ilce)) 
    { 
    if(strlen($kosul)<1) 
    { 
    $kosul .= "where cinsiyeti like '%".$cinsiyeti."%'"; 
    } 
    else 
    { 
    $kosul .= "or cinsiyeti like '%".$cinsiyeti."%'"; 
    } 
    }
    
    $hocaBul = mysql_query("select * from site_uye ".$kosul);
    


    Asp de istediğim işlemi şu şekilde yapabiliyordum.

    sql = sql & "Select * from ders where onay=1 and id>0 "
    
    If Trim(ders)<>"" Then
    sql	= sql & "and  (ders like '%" & ders & "%') "
    End If
    
    If Trim(vsemt)<>"" Then
    sql	= sql & "and  (vsemt like '%" & vsemt & "%') "
    End If
    
    If Trim(seviye)<>"" Then
    sql	= sql & "and  (seviye like '%" & seviye & "%') "
    End If
    
    If Trim(cinsiyet)<>"" Then
    sql	= sql & "and  (cinsiyet like '%" & cinsiyet & "') "
    End If