• 01-08-2017, 12:58:44
    #1
    Merhabalar
    if($this->tur == 'ulke' or $this->tur == 'il'){
    			if(!$this->ulkeno){
    				$sorgu = $dba->query("SELECT no FROM adres_ulke ORDER BY sira DESC, ulke ASC LIMIT 1");
    				$sonuc = $dba->fetch_assoc($sorgu);
    				$this->ulkeno = $sonuc['no'];
    			}
    			$sorgu = $dba->query("SELECT ilanlar.il,adres_il.no,adres_il.il,group_concat(adres_il.no order by adres_il.no separator ',') FROM ilanlar LEFT JOIN adres_il on (ilanlar.il=adres_il.no) WHERE ilanlar.durum not in(1,2,3,4,5,6) GROUP BY ilanlar.il order by count(*) DESC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $il[] = "['$sonuc[no]','$sonuc[il]']";
    		}
    
    			// Ilce
    		if($this->tur == 'ulke' or $this->tur == 'il' or $this->tur == 'ilce'){
    			if(!$this->ilno){
    				$sorgu = $dba->query("SELECT no FROM adres_il WHERE ulke='$this->ulkeno' ORDER BY sira DESC, il ASC LIMIT 1");
    				$sonuc = $dba->fetch_assoc($sorgu);
    				$this->ilno = $sonuc['no'];
    			}
    			$sorgu = $dba->query("SELECT no,ilce FROM adres_ilce WHERE il='$this->ilno' ORDER BY sira DESC, ilce ASC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $ilce[] = "['$sonuc[no]','$sonuc[ilce]']";
    		}
    
    		// Semt
    		if($this->tur == 'ulke' or $this->tur == 'il' or $this->tur == 'ilce' or $this->tur == 'semt'){
    			if(!$this->ilceno){
    				$sorgu = $dba->query("SELECT no FROM adres_ilce WHERE il='$this->ilno' ORDER BY sira DESC, ilce ASC LIMIT 1");
    				$sonuc = $dba->fetch_assoc($sorgu);
    				$this->ilceno = $sonuc['no'];
    			}
    			$sorgu = $dba->query("SELECT no,semt FROM adres_semt WHERE ilce='$this->ilceno' ORDER BY sira DESC, semt ASC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $semt[] = "['$sonuc[no]','$sonuc[semt]']";
    		}
    yukarıdaki sorgumda herşey tamam herşey çalışıyor ama ben
    diğer bir tablomla bağlatılı olarak yapmak istiyorum tüm iller ilçeler yerine sadece kayıt olanları listelemek istiyorum ancak bir üst sorguyu alt sorguya bağlamak istediğimde hata alıyorum listelenmiyor aşağıdaki üzerinde çalıştığım ve hata aldığım sorgum

    // Il
    		if($this->tur == 'ulke' or $this->tur == 'il'){
    			if(!$this->ulkeno){
    				$sorgu = $dba->query("SELECT adres_ulke.no as ulke_no FROM adres_ulke order by count(*) DESC LIMIT 1");
    				$sonuc = $dba->fetch_assoc($sorgu);
    				$this->ulkeno = $sonuc['ulke_no'];
    			}
    			$sorgu = $dba->query("SELECT ilanlar.il,adres_il.no as il_no,adres_il.il as il_ad,group_concat(adres_il.no order by adres_il.no separator ',') 
    			FROM ilanlar INNER JOIN adres_il on (ilanlar.il=adres_il.no) WHERE ilanlar.durum not in(1,2,3,4,5,6) GROUP BY ilanlar.il order by count(*) DESC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $il[] = "['$sonuc[il_no]','$sonuc[il_ad]']";
    		}
    
    		// Ilce
    		if($this->tur == 'ulke' or $this->tur == 'il' or $this->tur == 'ilce'){
    			if(!$this->ilno){
    				$sorgu = $dba->query("SELECT no FROM adres_il WHERE ulke='$this->ulkeno' ORDER BY sira DESC, il ASC LIMIT 1");
    				$sonuc = $dba->fetch_assoc($sorgu);
    				$this->ilno = $sonuc['no'];
    			}
    			$sorgu = $dba->query("SELECT ilanlar.ilce,adres_ilce.ilce as ilce_ad,adres_ilce.no  as ilce_no,group_concat(adres_ilce.no order by adres_ilce.no separator ',') 
    			FROM ilanlar INNER JOIN adres_ilce on (ilanlar.ilce=adres_ilce.no) WHERE il='$this->ilno' and ilanlar.durum not in(1,2,3,4,5,6) GROUP BY ilanlar.ilce  order by count(*) DESC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $ilce[] = "['$sonuc[ilce_no]','$sonuc[ilce_ad]']";
    		}
    
    		// Semt
    		if($this->tur == 'ulke' or $this->tur == 'il' or $this->tur == 'ilce' or $this->tur == 'semt'){
    			if(!$this->ilceno){
    				$sorgu = $dba->query("SELECT no FROM adres_ilce WHERE il='$this->ilno' order by count(*) DESC LIMIT 1");
    				$sonuc = $dba->fetch_assoc($sorgu);
    				$this->ilceno = $sonuc['no']; 
    			}
    			$sorgu = $dba->query("SELECT adres_semt.no as semt_no,adres_semt.semt as semt_adi,ilanlar.semt,group_concat(adres_semt.no order by adres_semt.no separator ',') 
    			FROM ilanlar INNER JOIN adres_semt on (ilanlar.semt=adres_semt.no) WHERE ilce='$this->ilceno' and ilanlar.durum not in(1,2,3,4,5,6) GROUP BY ilanlar.semt order by count(*) DESC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $semt[] = "['$sonuc[semt_no]','$sonuc[semt_adi]']";
    		}
    bunu nasıl düzenleyebilirim formda select optionlarda kullanıyorum bunu ,
  • 01-08-2017, 16:41:59
    #2
    Php Dosyasının Orjinal Hali

    <?php
    
    
    header('content-type: text/html; charset=utf-8');
    
    # Adres
    # ---------------------------------------------------------
    class Adres extends DatabaseClass{
    	var $tur;
    	var $ulkeno;
    	var $ilno;
    	var $ilceno;
    	var $secim;
    
    	# Kurucu
    	# ---------------------------------------------------------
    	function Adres($talep){
    $dba = new DatabaseClass;
    $dba->connect(); 
    		
    		$this->tur    = $talep['tur'];
    		$this->ulkeno = $talep['ulke'];
    		$this->ilno   = $talep['il'];
    		$this->ilceno = $talep['ilce'];
    		$this->semtno = $talep['semt'];
    		$this->secim  = $talep['secim'];
    	}
    
    	# Cikart
    	# ---------------------------------------------------------
    	function Cikart(){
    $dba = new DatabaseClass;
    $dba->connect(); 
    $dba->query("SET NAMES 'utf8'");
    $dba->query("SET CHARACTER SET utf8");
    $dba->query("SET COLLATION_CONNECTION = 'utf8_turkish_ci'");
    		// Secim
    		if($this->secim == 'evet'){
    			$ulke[] = "['','Seciniz ...']";
    			$il[]   = "['','Şehir']";
    			$ilce[] = "['','İlçe']";
    			$semt[] = "['','Semt']";
    		}
    
    		// Ulke
    		if($this->tur == 'ulke'){
    			$sorgu = $dba->query("SELECT no,ulke FROM adres_ulke ORDER BY sira DESC, ulke ASC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $ulke[] = "['$sonuc[no]','$sonuc[ulke]']";
    		}
    
    		// Il
    		if($this->tur == 'ulke' or $this->tur == 'il'){
    			if(!$this->ulkeno){
    				$sorgu = $dba->query("SELECT no FROM adres_ulke ORDER BY sira DESC, ulke ASC LIMIT 1");
    				$sonuc = $dba->fetch_assoc($sorgu);
    				$this->ulkeno = $sonuc['no'];
    			}
    			$sorgu = $dba->query("SELECT ilanlar.il,adres_il.no,adres_il.il,group_concat(adres_il.no order by adres_il.no separator ',') FROM ilanlar LEFT JOIN adres_il on (ilanlar.il=adres_il.no) WHERE ilanlar.durum not in(1,2,3,4,5,6) GROUP BY ilanlar.il order by count(*) DESC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $il[] = "['$sonuc[no]','$sonuc[il]']";
    		}
    
    			// Ilce
    		if($this->tur == 'ulke' or $this->tur == 'il' or $this->tur == 'ilce'){
    			if(!$this->ilno){
    				$sorgu = $dba->query("SELECT no FROM adres_il WHERE ulke='$this->ulkeno' ORDER BY sira DESC, il ASC LIMIT 1");
    				$sonuc = $dba->fetch_assoc($sorgu);
    				$this->ilno = $sonuc['no'];
    			}
    			$sorgu = $dba->query("SELECT no,ilce FROM adres_ilce WHERE il='$this->ilno' ORDER BY sira DESC, ilce ASC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $ilce[] = "['$sonuc[no]','$sonuc[ilce]']";
    		}
    
    		// Semt
    		if($this->tur == 'ulke' or $this->tur == 'il' or $this->tur == 'ilce' or $this->tur == 'semt'){
    			if(!$this->ilceno){
    				$sorgu = $dba->query("SELECT no FROM adres_ilce WHERE il='$this->ilno' ORDER BY sira DESC, ilce ASC LIMIT 1");
    				$sonuc = $dba->fetch_assoc($sorgu);
    				$this->ilceno = $sonuc['no'];
    			}
    			$sorgu = $dba->query("SELECT no,semt FROM adres_semt WHERE ilce='$this->ilceno' ORDER BY sira DESC, semt ASC");
    			while($sonuc = $dba->fetch_assoc($sorgu)) $semt[] = "['$sonuc[no]','$sonuc[semt]']";
    		}
    
    		// Dizi
    		if(is_array($ulke)) $cikti[] = '\'ulke\':['.implode(',',$ulke).']';
    		if(is_array($il))   $cikti[] = '\'il\':['.implode(',',$il).']';
    		if(is_array($ilce)) $cikti[] = '\'ilce\':['.implode(',',$ilce).']';
    		if(is_array($semt)) $cikti[] = '\'semt\':['.implode(',',$semt).']';
    
    		if(is_array($cikti)) echo '{'.implode(',',$cikti).'}';
    		else echo '{}';
    	}
    }
    $adres = new Adres($_REQUEST);
    $adres->Cikart();
    ?>
  • 02-08-2017, 12:16:14
    #3
    WHERE il='$this->ilno' satırında join yaptığın için eğer iki tabloda da il hanesi varsa karışıklık olur. Dolayısıyla bu satırı

    WHERE ilanlar.il='$this->ilno
    veya

    WHERE ilceler.il='$this->ilno
    şeklinde değiştir.
  • 02-08-2017, 12:35:59
    #4
    Teşekkür ederim .