• 14-08-2012, 23:20:22
    #1
    merhabalar.
    Codeigniter ile bir site yapıyorum ve panel kısmında bir nokta phpye fazlaca yüklendirmek zorunda bırakıyor beni.
    Yüklenmemek için array ile gelen değer içinden sql tarzı bir seçim yaptırmam gerekiyor.
    kısaca anlatayım.

    siparişler ve user tablosundan verileri çekip siparisler ve userlar diye değişkenler ile viewa gönderiyorum ve view içerisinde siparişler değişkenini foreach ile döndürüyorum. ama siparişler tablomda siparişi veren kullanıcı, sadece idsi ile kayıtlı oluyor. bu nedenle siparişi veren kullanıcıyı görebilmek için siparişler için dönen foreach içinde her dönüşünde bir de user değişkenini foreach ile döndürmem gerekiyor. şimdilik sorun yok ama user ve sipariş sayısı arttıkça aşırı bir kasmaya neden olacaktır bu nedenle array içinden id ile seçim yaptırmam nasıl mümkün olur ?

    kısaca koda örnek vermek gerekirse:

    foreach($siparisler as $siparis)
    {
      foreach($userlar as $user)
      {
        if($user->id == $siparis->id)
        {
          echo $siparis->urun . ' - ' . $user->username;
        }
      }
    }
    gibi

    bunu tamamen sallıyorum şuna benzer birşey yapmak mümkün müdür?
    foreach($siparisler as $siparis)
    {
      $username = $userlar['id=',$siparis->id]->username;
      echo $siparis->urun . ' - ' . $username;
    }
    gibi

    not: bunu da bilmiyosan git kendini at gibi gereksiz yorumlar yapmayı düşünenler bunu yapmasın lütfen henüz gelişim aşamasındayım!!

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 23:20:22 -->-> Daha önceki mesaj 23:11:31 --

    unutmadan veritabanından gelen veriler şu şekilde geliyor:

    $veri[0]['id']='1'
    $veri[0]['username']='DjMuratHan'
    $veri[0]['email']='hotmail@murat-demirel.com'

    $veri[1]['id']='2'
    $veri[1]['username']='BaskaUser'
    $veri[1]['email']='asd@example.com'


    gibi
  • 15-08-2012, 02:30:31
    #2
    Konu Çözüldü.
    İlgisini çekenler için:
    Cİ de bi helper oluşturdum ve user verisini viewa göndermiyorum artık helper içinde userin idsini alıp username'ini gönderen bi fonksiyon yazdım. ve sipariş verisinde gelen userid verisini bu helperdaki fonksiyonuma yollayıp username değerini alıp yazdırıyorum direk.

    helper içindeki kod aşağıdaki gibi:

    if ( ! function_exists('get_username_by_id')) {
    	function get_username_by_id($userid) {  
    			$CI =& get_instance();
    		$CI->db->from("user");
    		$CI->db->where("id",$userid);
    		$result = $CI->db->get();
    		if($result->num_rows() > 0)
    		{
    		    $result = $result->row();
    			return $result->username;
    		}
    	}
    }
    view içinden bunu çağırıp yazdırmak için:

    echo get_userdetay_by_id($userid);
    helper dosyası application/helper klasörü altında admin_helper.php adı ile kayıtlı ve helper dosyasını aktif etmek için controller altındaki fonksiyona:

    $this->load->helper('admin');
  • 15-08-2012, 02:59:34
    #3
    Üyeliği durduruldu
    helper yazsanızda aynı hesaba gelecek, iç içe döngü yapmayın
    tablo birleştirmek için join kullanın
  • 15-08-2012, 05:33:24
    #4
    codeigniterın kullanım kılavuzu kısmından kullanımına baktım ve hemen deniyorum teşekkürler

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 05:24:48 -->-> Daha önceki mesaj 05:22:12 --

    Hata : Column 'id' in order clause is ambiguous

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 05:33:24 -->-> Daha önceki mesaj 05:24:48 --

    Edit :

    $this->db->select("siparisler.*");
    $this->db->select("user.username");
    $this->db->from("siparisler");
    $this->db->where("karakteradi","");
    $this->db->where("onay !=","0");
    $this->db->join('user', 'user.id = siparisler.userid');
    $this->db->order_by("id","desc");
    $result = $this->db->get();
    return $result->result();
    şeklinde çalıştı