• 14-11-2015, 20:23:22
    #1
    Merhaba arkadaşlar,

    Emlak sistemime aşağıdaki resimde gösterdiğim gibi 5 select box ve 2 input'tan oluşan 7 seçenekli Detaylı Arama bölümü oluşturdum:

    ____________________


    ____________________

    PHPMyAdmin'deki tablolarım şu şekildedir:
    ____________________


    ____________________

    Çalışmama gerekli tablolar ilan_detay , ilan_modeli , ilan_tipi tablolarıdır.
    ____________________

    "ilan_detay" tablo yapısı:
    ____________________

    >> Uzun bir resim olduğu için sayfada kirlilik olmaması amacıyla link olarak veriyorum
    ____________________

    "ilan_detay" içindekiler:
    ____________________

    >> Uzun bir resim olduğu için sayfada kirlilik olmaması amacıyla link olarak veriyorum
    ____________________

    "ilan_modeli" tablo yapısı:
    ____________________

    >> Uzun bir resim olduğu için sayfada kirlilik olmaması amacıyla link olarak veriyorum
    ____________________

    "ilan_tipi" tablo yapısı:
    ____________________

    >> Uzun bir resim olduğu için sayfada kirlilik olmaması amacıyla link olarak veriyorum
    ____________________

    Evet arkadaşlar tablolarımı gördüğünüze göre sıra kodlarımı göstermeye geldi:
    ____________________

    index.php (Arama bölümünün olduğu sayfa):


    <form action="search.php" method="get" enctype="multipart/form-data" />
    	<select name="sec1" class="form-control input-lg">
    		<option selected="" value="">Seçiniz</option>
    									
    		<?php
    			$sql="select model_ad_dil1 from ilan_modeli";
    			$run_sql = mysql_query($sql);
    			while ($row=mysql_fetch_array($run_sql)){
    			$model_ad_dil1 = $row['model_ad_dil1'];
    			?>
    		<option value=""><?php echo $model_ad_dil1; ?></option>
    		<?php } ?>
    									
        </select>
    
    	<select name="sec2" class="form-control input-lg">
    		<option selected="" value="">Seçiniz</option>
    									
    		<?php
    			$sql="select tip_ad_dil1 from ilan_tipi";
    			$run_sql = mysql_query($sql);
    			while ($row=mysql_fetch_array($run_sql)){
    			$tip_ad_dil1 = $row['tip_ad_dil1'];
    		?>
    		<option value=""><?php echo $tip_ad_dil1; ?></option>
    		<?php } ?>
    									
    	</select>
    
    	<select name="sec3" class="form-control input-lg" id="il">
    		<option selected="" value="">İl Seçiniz</option>
    									
    		<?php
    			$sql="select distinct ilan_sehir from ilan_detay";
    			$run_sql = mysql_query($sql);
    			while ($row=mysql_fetch_array($run_sql)){
    			$ilan_sehir = $row['ilan_sehir'];
    		?>
    		<option value=""><?php echo $ilan_sehir; ?></option>
    		<?php } ?>
    									
    	</select>
    						
    	<select name="sec4" style="width:150px;" class="form-control input-lg">
    		<option selected="" value="">Krediye Uygun mu?</option>
    									
    		<?php
    			$sql="select distinct ilan_kredi_durumu from ilan_detay";
    			$run_sql = mysql_query($sql);
    			while ($row=mysql_fetch_array($run_sql)){
    			$ilan_kredi_durumu = $row['ilan_kredi_durumu'];
    		?>
    		<option value=""><?php echo $ilan_kredi_durumu; ?></option>
    		<?php } ?>
    									
    	</select>
    
    	<select name="sec5" style="width:150px;" class="form-control input-lg">
    	    <option selected="" value="">Oda Sayısı</option>
    									
    		<?php
    			$sql="select distinct ilan_oda_sayisi from ilan_detay";
    			$run_sql = mysql_query($sql);
    			while ($row=mysql_fetch_array($run_sql)){
    			$ilan_oda_sayisi = $row['ilan_oda_sayisi'];
    		?>
    		<option value=""><?php echo $ilan_oda_sayisi; ?></option>
    		<?php } ?>
    									
    	</select>
    							
    	<label style="margin-right:-350px;text-indent:120px;">Fiyat Aralığı (Min - Max)</label>
    									
    		<input style="width:150px;" type="number" class="form-control input-lg" name="minPrice" placeholder="Örn; 0" value="<?php echo $ilan_fiyat; ?>">
    		<input style="width:150px;" type="number" class="form-control input-lg" name="maxPrice" placeholder="Örn; 500000" value="<?php echo $ilan_fiyat; ?>">
    								  
    	<button type="submit" class="btn-primary btn-lg" name="search"><i class="fa fa-search"></i> Ara</button>
    </form>
    ____________________

    search.php (Aramaların gösterildiği sayfa):
    ____________________

    <?php
    							
    	$sqlstring = "SELECT * FROM ilan_detay as id LEFT JOIN ilan_modeli as im ON id.ilan_modeli=im.model_id LEFT JOIN ilan_tipi as it ON id.ilan_tipi=it.tip_id=im.tip_id WHERE 1=1";
    							
    	if(isset($_GET['sec1'])){
    		$sqlstring .= " AND im.model_ad_dil1 like '%$_GET[sec1]%'";
    	}
    							
    	if(isset($_GET['sec2'])){
    		$sqlstring .= " AND it.tip_ad_dil1 like '%$_GET[sec2]%'";
    	}
    							
    	if(isset($_GET['sec3'])){
    		$sqlstring .= " AND id.ilan_sehir like '%$_GET[sec3]%'";
    	}
    							
    	if(isset($_GET['sec4'])){
    		$sqlstring .= " AND id.ilan_kredi_durumu like '%$_GET[sec4]%'";
    	}
    							
    	if(isset($_GET['sec5'])){
    		$sqlstring .= " AND id.ilan_oda_sayisi like '%$_GET[sec5]%'";
    	}
    							
    	if(isset($_GET['minPrice'])){
    		$sqlstring .= " AND id.ilan_fiyat >= '%$_GET[minPrice]%'";
    	}
    							
    	if(isset($_GET['maxPrice'])){
    		$sqlstring .= " AND id.ilan_fiyat <= '%$_GET[maxPrice]%'";
    	}
    							
    	$sql = mysql_query($sqlstring);
    							
    	while ($search_row=mysql_fetch_array($sql)){
    								
    	$ilan_id = $search_row['ilan_id'];
    	$ilan_foto = $search_row['ilan_foto'];
    	$ilan_fiyat = $search_row['ilan_fiyat'];
    	$ilan_mahalle = $search_row['ilan_mahalle'];
    	$ilan_sehir = $search_row['ilan_sehir'];
    	$ilan_m2 = $search_row['ilan_m2'];
    	$ilan_oda_sayisi = $search_row['ilan_oda_sayisi'];
    	$ilan_banyo = $search_row['ilan_banyo'];
    
    ?>
    							
    	Burada HTML kodlarıyla arama sonucunu ilan olarak gösteriyorum
    							
    <?php } ?>
    _ _ _ _ _ _ _ _ _ _ _ _ _ _

    Ama malesef ki arkadaşlar arama yapmıyor, sonuç bulmuyor.

    Yardımlarınızı bekliyorum.
  • 15-11-2015, 00:06:57
    #2
    bildigim yöntemler tablo birleştirerek ve birlestirilen tabloların adı aynı olacak öyle bir arama yapabilirsin
    Örnek
    SELECT * FROM haberler,videolar WHERE baslik LIKE $arananstring

    Veya

    UNION sql cümlecigini arastırın

    select id,baslık,'Video' as Tablo
    where baslik like '%detay_x%'
    union all
    select id,baslık,'Haber' as Tablo
    where baslik like '%haber_x%'
  • 17-11-2015, 19:56:55
    #3
    Arkadaşlar ilk mesajı güncelledim, derdimi iyicene detaylıca anlattım.

    Vakti ve bilgisi olan arkadaşlardan acil yardım istiyorum.

    Teşekkürler.