• 22-03-2014, 03:34:11
    #1
    Arkadaşlar sorunum çok karmaşık değil aslında ama biraz kafam karıştı ve seri olmam lazım yardımcı olursanız sevinirim.

    Şöyle bi' veritabanı yapısı var;


    var_dump'la ekran çıktısı da şöyle:


    en derin arraylerin içeriği de "ad" => "ilçe adı" şeklinde.

    sorgum da şöyle
    $plaka = filtre1( $_POST['il'], true );
    $q = $db->konum->findOne( array( "ulke" => "Türkiye" ) );
    if( !$q ){ echo "Veritabanı bağlantısında bir hata oluştu."; exit; }
    
    foreach( $q['iller'] as $il ){
    	if( $il['plaka'] = $plaka ){ echo $il['plaka']; }
    }
    eşleşen plakayı tekrar döngüye alıp ilçeleri yazdırcam ama yukardaki kodda henüz nerde olduğunu bulamadığım bi mantıksızlık yapıyorum. Sayfaya izmir plakası gönderdiysem ekran çıktım şöyle oluyor:
  • 22-03-2014, 03:39:31
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @dark_way;
    	if($il["plaka"] = $plaka)
    	{
    		echo $il["plaka"];
    	}
    yerine
    	if($il["plaka"] == $plaka)
    	{
    		echo $il["plaka"];
    	}
    yazıp deneyebilir misin?
  • 22-03-2014, 03:46:48
    #3
    Hocam sen her denk geldiğinde bi' r10+ tıklicam artık.
    Böyle bi sorunu sorun etmiş olmam da, yarım saatte bulmamış olmam da yine şaka gibi : S
  • 22-03-2014, 03:51:24
    #4
    @dark_way; boşuna bu kategorinin moderatörü yapmadılar beni hocam, görevimiz
  • 22-03-2014, 11:29:38
    #5
    Bir soru daha.
    İl ilçe veritabanı yapısını değiştirmeye karar verdim de yine anlam veremediğim bi hata var. Bu ne hatası ola ki dostalar?



    Öncesindeki ilk kayıt ve nextid() fonksiyonu;
    function nextid( $tablo ){
    	global $db;
    	$q = $db -> $tablo -> findOne();
    	if( !$q ){ return false; }
    	return $q['_id']+1;
    }
    
    $belge = array(
    	"_id"		=> 1,
    	"tip" 		=> "ulke",
    	"ad"		=> "Türkiye",
    	"kod"		=> "TR",
    	"konum1"	=> 39.945564,
    	"konum2"	=> 32.866429,
    	"ustid"		=> 0,
    	"ustidler"	=> array()
    );
    $db->konum->insert( $belge );
    .
    Array yapısı da şöyle;
    $data = [
              [ 
                   "ad" => "Adana",
    			   "plaka" => 1,
    			   "konum1" => 36.551069,
    			   "konum2" => 36.324426,
                   "ilceler" => [ 
                        ["ad"=>"Merkez"], ["ad"=>"Aladag"], ["ad"=>"Ceyhan"], ["ad"=>"Feke"], ["ad"=>"Imamoglu"], ["ad"=>"Karaisali"], ["ad"=>"Karatas"], ["ad"=>"Kozan"], ["ad"=>"Pozanti"], ["ad"=>"Saimbeyli"], ["ad"=>"Seyhan"], ["ad"=>"Tufanbeyli"], ["ad"=>"Yumurtalik"], ["ad"=>"Yüregir"], 
                   ], 
              ], 
              [ 
                   "ad" => "Adıyaman", 
    			   "plaka" => 2,
    			   "konum1" => 37.747649,
    			   "konum2" => 38.305703,
                   "ilceler" => [ 
                        ["ad"=>"Merkez"], ["ad"=>"Besni"], ["ad"=>"Çelikhan"], ["ad"=>"Gerger"], ["ad"=>"Gölbasi"], ["ad"=>"Kahta"], ["ad"=>"Samsat"], ["ad"=>"Sincik"], ["ad"=>"Tut"], 
                   ], 
              ], .....................................
  • 22-03-2014, 11:31:59
    #6
    @dark_way; aynı indexten fazla sayıda olduğu söyleniyor. robomongo adlı yazılımla mongodb'deki veritabanınıza ulaşıp verileri görebilirsiniz.
  • 22-03-2014, 11:50:05
    #7
    ouuu tamam ya nextid()'de hep ilk satırın idsine göre belirlemişiz yeni idyi.
  • 22-03-2014, 11:55:55
    #8
    @dark_way; insert etmek istediğiniz koleksiyonda aynı ID'ye sahip kayıtlar var ondan dolayı böyle bi' hata veriyor.