2016-04-12 20 views
0
Ben Codeigniter 3.0 kullanıyorum

ve sql SunucusuSayım verileri

Bu benim tablo

customers table: 
Amount  Date       Id 
1.00  2014-01-05 00:00:00.000   1 
2.00  2014-01-11 00:00:00.000   1 
3.00  2014-02-03 00:00:00.000   1 
2.00  2014-02-05 00:00:00.000   1 

Ve ben Yani

January 3.00 
February 5.00 
!!!!!! 

December 12.00 

olarak benim çıkışını görüntülemek istediğiniz, nasıl Bu Tutarı ve tüm günleri tek bir aya nasıl koyabileceğimi sayabilir miyim?

ve ben cod kullanıyorum eigniter 3.0, benim veritabanı SQL Server 2012

public function overviews(){ 
// $merchantid=$this->session->userdata('user_password'); 
    $baji=$this->livemerchant_model->overviews(); 
    $name=$this->session->userdata('name'); 
      $data=array('baji'=>$baji,'name'=>$name); 

    if($this->session->has_userdata('user_email','name')){ 
    $this->load->view('overviews.php', $data); 


    } 
    } 

sfnerd bu benim denetleyicisi olduğunu ve

select year 
january 12.00 
february 24.00 


Total 36.00 

gibi verileri görüntülemek mümkündür ve ben seçilmiş yıl sadece

için miktarın ekran sayımı istiyorum
<label class="tp-label">Select a year</label> 
                   <select> 
                   <?php 
foreach($monthlyTotals as $row) 
{ 
?> 
<option value = "<?php echo $row->TheYear?>"><?php echo $row->TheYear;?> </option> 
<?php 
} 
?> 

, bu döngüyü yaptığım zaman, tekrar tekrar 12 ay gibi aylara dayanan yıllara gidiyorum ve 2015 seçkisi gibi çıktıya ihtiyacım var ve bu düğmeyi tıklattığımda yük düğmesine sahip olmak istiyorum n Bu kontrolörü 12 ay

public function overviews() 
{ 
$this->load->model('livemerchant_model'); 
$name=$this->session->userdata('name'); 
$data['monthlyTotals'] = $this->livemerchant_model- >overviews($theyear=''); 
$this->load->view('overviews', $data); 
} 

görüntülemek için gereken Ve kullanılan

Yardım beni

cevap

0

Orada Aktif Kaydı kullanarak (bir yapmak için iki yol burası edilir bunun için muhtemelen bir kaç yolu vardır, ancak bir düz SQL). CI 3.0.6 ve SQL Server 2012 ile test ettim ve benzer bir tablo oluşturdum.

MODEL İŞLEVİ (varsayalım modeli denir Müşteriler)

Düz SQL Versiyon:

function get_monthly_totals($theYear = '', $theMonth = '') 
{ 
    $sql = "SELECT DATEPART(Year, Date) [TheYear], DATEPART(Month, Date) [TheMonth], DATENAME(Month, Date) [TheMonthName], SUM(Amount) [TotalAmount] 
     FROM Customers 
     WHERE Date IS NOT NULL "; 

    if ($theYear != '') { 
     $sql = $sql . " AND DATEPART(Year, Date) = '$theYear'"; 
    } 

    if ($theMonth != '') { 
     $sql = $sql . " AND DATEPART(Month, Date) = '$theMonth'"; 
    } 

    $sql = $sql . " GROUP BY DATEPART(Year, Date), DATEPART(Month, Date), DATENAME(Month, Date) ORDER BY [TheYear], [TheMonth], [TheMonthName]"; 

    $query = $this->db->query($sql); 

    return $query->result(); 
} 

Active kayıt sürümü:

function get_monthly_totals($theYear = '', $theMonth = '') 
{ 

    $this->db->select("DATEPART(Year, Date) [TheYear], DATEPART(Month, Date) [TheMonth], DATENAME(Month, Date) [TheMonthName], SUM(Amount) [TotalAmount]", false); 
    $this->db->from('Customers'); 

    if ($theYear != '') { 
     $this->db->where("DATEPART(Year, Date) = '" . $theYear . "'", NULL, FALSE); 
    } 

    if ($theMonth != '') { 
     $this->db->where("DATEPART(Month, Date) = '" . $theMonth . "'", NULL, FALSE); 
    } 

    $this->db->group_by("DATEPART(Year, Date), DATEPART(Month, Date), DATENAME(Month, Date)"); 
    $this->db->order_by("1", "asc"); 
    $this->db->order_by("2", "asc"); 
    $this->db->order_by("3", "asc"); 

    $query = $this->db->get(); 

    return $query->result(); 
} 

KONTROL İŞLEVİ

public function index() 
{ 
    $this->load->model('Customers_model'); 

    $data['monthlyTotals'] = $this->Customers_model->get_monthly_totals('2014'); 

    $this->load->view('customers', $data); 
} 

GÖRÜNÜM ÇIKIŞ (customers.php)

<?php 
    foreach ($monthlyTotals as $row) 
    { 
     echo $row->TheYear . " - " . $row->TheMonthName . ": " . $row->TotalAmount . " <br />" . PHP_EOL; 
    } 
?> 
+0

Sayesinde benim için çalışıyor ........ ama alıyorum cfnerd tüm yıl kayıtları ancak yıl seçimi ve yıl 12 ay kayıtlarını görüntülemek istiyorum Yıl – ohmygood

+0

@shaik @ WELE claus ekleyerek bunu yapmak için denetleyicide sorgu ayarlayabilirsiniz e. WHERE, değişken aracılığıyla veya statik olan bir şeyle aktardığınız bir şey olabilir. – cfnerd

+0

Thnak you @cfnerd .. Aslında soruyu düzenledim lütfen kontrol edip bana bir çözüm önerebilir – ohmygood