Отчеты в Codeigniter

Каков наиболее простой способ создания отчетов в рамках Codeigniter? Есть ли доступная библиотека для выполнения этой задачи? За исключением того, что для этого нужны другие ресурсы.

Related of "Отчеты в Codeigniter"

Нашел хорошее решение. Если вы хотите генерировать отчеты в формате csv, это очень легко с помощью codeigniter. Ваша модельная функция

function index(){ return $query = $this->db->get('my_table'); /* Here you should note i am returning the query object instead of $query->result() or $query->result_array() */ } 

Теперь в контроллере

 function get_report(){ $this->load->model('my_model'); $this->load->dbutil(); $this->load->helper('file'); /* get the object */ $report = $this->my_model->index(); /* pass it to db utility function */ $new_report = $this->dbutil->csv_from_result($report); /* Now use it to write file. write_file helper function will do it */ write_file('csv_file.csv',$new_report); /* Done */ } 

Никаких внешних условий не требуется, чтобы все было доступно в codeigntier. Ура! Если вы хотите написать xml-файл, это тоже легко.
Просто используйте метод dbutil xml_from_result() и используйте write_file('xml_file.xml,$new_report) Перейдите по этим ссылкам, которые они помогут.

Класс полезности базы данных

А также

Помощник файла

Полное объяснение:

Модель:

 class Csv_m extends MY_Model { function getCSV() { $sql = "SELECT * FROM tablename"; return $this->db->query($sql); } } 

контроллер:

 class Generate extends CI_Controller { var $file_path; public function __construct() { parent::__construct(); $this->file_path = realpath(APPPATH . '../assets/csv'); } function index() { $this->load->model('csv_m'); $this->load->dbutil(); $this->load->helper('file'); //get the object $report = $this->csv_m->getCSV(); $delimiter = ","; $newline = "\r\n"; $new_report = $this->dbutil->csv_from_result($report, $delimiter, $newline); // write file write_file($this->file_path . '/csv_file.csv', $new_report); //force download from server $this->load->helper('download'); $data = file_get_contents($this->file_path . '/csv_file.csv'); $name = 'name-'.date('dm-Y').'.csv'; force_download($name, $data); } } 

Я использовал это для своих отчетов .csv. он имеет возможность изменять имя поля базы данных в файле csv. вот код.

  public function export_csv() { $file_name = 'File_name_'.date("Ymd his").'.csv'; $query = $this->db->query('SELECT id as "Id", // id is table id and Id is the csv header field. franchiseopt as "Nearest Location", hear_about_us as "How did you hear about us?", specify as "Specify", email as "Email", noguests as "Number of Guests", eventdate as "Date of Event", name as "Your Name", phone as "Phone Number", locationevent as "Location of Event", message as "More Details" FROM TABLE_NAME ORDER BY id DESC'); $this->load->dbutil(); $data = $this->dbutil->csv_from_result($query); $this->load->helper('download'); force_download($file_name, $data); exit(); } 

Очевидно, вам нужно заменить поля таблицы базы данных в соответствии с вашей таблицей.