• 24-03-2018, 17:33:39
    #1
    merhaba arkadaşlar,
    Codeignihter kullanarak script kodluyorum bir yerde takıldım.
    controller.php
    public function incele ($id)
        {
            $fatura = $this->db->query("SELECT * FROM fatura WHERE cari_id = $id ORDER BY tarih ASC");
            $data["fatura"] = $fatura ->result();
            $query = $this->db->query("SELECT * FROM cari_giris_bordrosu WHERE cari_id = $id ORDER BY tarih ASC");
            $data["bordro"] = $query->result();
            $this->load->view('admin/cari/cari_incele.tpl', $data);
    
        }
    Burdaki iki datayı tpl dosyamda tek foreach yada iç içe foreach ile tarihe göre nasıl listelerim.
    Örneğin :
    01.01.2018 - Bordro -
    02.01.2018 - Fatura -
    04.01.2018 - Bordro -
    böyle listemek istiyorum yardımcı olur musunuz ?
  • 24-03-2018, 20:50:41
    #2
    2 yöntem geldi aklıma
    Birincisi iki tabloda da benzer kolonlar var ise (select * yerine sadece gerekli sütunları seçmenizi ayrıca öneririm) mysql in özelliği olan UNION kullanılabilir.
    İkinci olarak da iki $data[fatura] ve $data[bordro] tek bir dizide birleştirip sonra sıralama yapabilirsiniz.
    İlk yöntem üzerinde yoğunlaşmanızı öneririm
  • 24-03-2018, 21:05:39
    #3
    Belki Birgün Birine Lazım Olur..
    array_merge();
    array_multisort();
     $dizi = array_merge($fatura,$bordro);
     $tarih=array();
    foreach($dizi as $key => $arr){
                  $tarih[$key]=$arr->tarih;
                  $tarihbol[$key] = explode('-', $arr->tarih);
                  $tarihbol0[$key] = $tarihbol[$key][2];
                  $tarihbol1[$key] = $tarihbol[$key][1];
                  $tarihbol2[$key] = $tarihbol[$key][0];
    // Bunu yapma sebebim Ben verileri Tarhe göre listemelek istediğim için
                 } 
     for($i=0; $i< 100000; $i++){ 
          $veri =  array_multisort($tarihbol2, SORT_NUMERIC, $tarihbol1, SORT_NUMERIC, $tarihbol0, SORT_NUMERIC,  $dizi);
          }
    foreach($dizi as $raw){ 
     
    //veriler
     
    }