Php 将数据从codeigniter中的多个表导出到excel
我想将数据从多个表中导出到excel中,我根据这三个表的要求编写了逻辑,并保存在模型中的单个函数中。我在控制器中调用这个函数,我只对一个表使用了这个方法,但对多个表没有Php 将数据从codeigniter中的多个表导出到excel,php,mysql,sql,excel,codeigniter,Php,Mysql,Sql,Excel,Codeigniter,我想将数据从多个表中导出到excel中,我根据这三个表的要求编写了逻辑,并保存在模型中的单个函数中。我在控制器中调用这个函数,我只对一个表使用了这个方法,但对多个表没有 This is MODAL function update_wallet_pbo(){ $query1 = $this->db->query(" SELECT * FROM privilege_customer WHERE accountStatus = 'A' "); $sno = 1; if
This is MODAL
function update_wallet_pbo(){
$query1 = $this->db->query(" SELECT * FROM privilege_customer WHERE accountStatus = 'A' ");
$sno = 1;
if($query1->num_rows() > 0){
foreach($query1->result() as $row1){
$acc = $row1->accountNum;
$PBONum = $row1->PBONum;
echo 'S no. - '.$sno.' PBO No. = '.$PBONum.' Acc No. = '.$acc.'<br/>';
$total_balance = 0 ;
$query3 = $this->db->query(" SELECT * FROM `pbo_purchase_wallet` WHERE PBONum = '$PBONum' ORDER by date ASC ");
if($query3->num_rows() > 0){
foreach($query3->result() as $row3){
if($row3->type == 'Credited'){
$total_balance = round( floatval($total_balance) , 2 ) + round( floatval($row3->transactionAmount) , 2 );
echo 'ID = '.$row3->id.' PS no. = '.$row3->PSNum.' Credit = '.$row3->transactionAmount.' Debit = 0 Balance Amount = '.$row3->totalAmount.' Actual Balance Amount = '.$total_balance.'<br/>';
}
else if($row3->type == 'Debited'){
$total_balance = round( floatval($total_balance) , 2 ) - round( floatval($row3->transactionAmount) , 2 );
echo 'ID = '.$row3->id.' PS no. = '.$row3->PSNum.' Credit = 0 Debit = '.$row3->transactionAmount.' Balance Amount = '.$row3->totalAmount.' Actual Balance Amount = '.$total_balance.'<br/>';
}
/*$data = array( 'totalAmount' => $total_balance);
$this->db->update('stockist_sales_wallet_additions', $data);*/
}
}
$query4 = $this->db->query(" SELECT * FROM `pbo_wallet` WHERE PBONum = '$PBONum' ");
if($query4->num_rows() > 0){
foreach($query4->result() as $row4){
$purchase_wallet = round( floatval($row4->purchaseWallet) , 2 );
if($purchase_wallet <= $total_balance+1 && $purchase_wallet >= $total_balance-1){
echo '<b style="color:blue;">---------------------------Correct-----------------------</b><br/>';
echo 'Purchase Wallet = '.$purchase_wallet.' Total Balance = '.$total_balance.'<br/>';
echo '<b style="color:blue;">---------------------------Correct-----------------------</b><br/>';
}
else{
echo '<b style="color:red;">---------------------------Wrong-----------------------</b><br/>';
echo 'Purchase Wallet = '.$purchase_wallet.' Total Balance = '.$total_balance.'<br/>';
echo '<b style="color:red;">---------------------------Wrong-----------------------</b>';
}
}
}
$sno++;
echo '<br/><br/><br/>';
if($sno == 10){
return 1;
}
}
}
}
那么所有这些代码到底有什么问题呢?假设我在上面的模式中只从“pbo\u purchase\u wallet”中提取一个查询“SELECT*”,它工作正常,但我在模式中作为一个函数从三个表中提取数据,存在问题,并且没有将数据导出到Excel,这应该不会是一个问题,如果重新构造代码以使用三个不同的表。毕竟,这种模式是为了什么,为什么要回显这么多东西来获得Excel导出?我只是在没有Excel的情况下打印出来。这就是为什么我要用Echot还有什么问题?您不能将控制器部件包装在
for
循环中,以访问不同的数据库并将它们打印到不同的表中吗?
function update_wallet_pbo(){
$this->load->model("AdminModel");
$this->load->library("excel");
$object = new PHPExcel();
$object->setActiveSheetIndex(0);
$table_columns = array("Name", "Address", );
$column = 0;
foreach($table_columns as $field)
{
$object->getActiveSheet()->setCellValueByColumnAndRow($column, 1, $field);
$column++;
}
$employee_data = $this->AdminModel->update_wallet_pbo();
$excel_row = 2;
foreach($employee_data as $row)
{
$object->getActiveSheet()->setCellValueByColumnAndRow(0, $excel_row, 'dsf');
$object->getActiveSheet()->setCellValueByColumnAndRow(1, $excel_row, 'sadf');
$excel_row++;
}
$object_writer = PHPExcel_IOFactory::createWriter($object, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Employee Data.xls"');
$object_writer->save('php://output');