php - 将数据从mysql插入到phpexcel的数组中

标签 php mysql

我使用PHPEXCEL类将数据和柱形图从mysql导出到excel。

如果我从 phpexcel 中的示例中读取使用数组

$sheet = array(

  array(
    '',
    '2010',
    '2011',
    '2012',
  ),
  array(
    'Q1',
    '12',
    '15',
    '21',
  ),
  array(
    'Q2',
    '56',
    '73',
    '86',
  ),
  array(
    'Q3',
    '52',
    '43',
    '66',
  ),
  array(
    'Q4',
    '52',
    '33',
    '46',
  )
);




foreach($sheet as $row => $columns) {
    foreach($columns as $column => $data) {
        $objWorksheet->setCellValueByColumnAndRow($column, $row + 1, $data);
    }
}
?>

我有 mysql 代码:

$gdg = mysql_query("SELECT a.building_id, b.building_name FROM ticket_open a JOIN m_building b ON a.building_id = b.building_id GROUP BY b.building_id ORDER BY b.building_name ASC");
     while($hsldgd = mysql_fetch_array($gdg))                    
     {

        $gdgid = $hsldgd['building_id']; 
        $gdgname = $hsldgd['building_name'];

            $comp = mysql_query("SELECT ifnull(count(ticket_no),0) as jcomp FROM ticket_open WHERE STATUS = 'completed' AND 
                                 building_id = '$gdgid' ");
            $hslcomp = mysql_fetch_array($comp);    

            $ncomp = mysql_query("SELECT ifnull(count(ticket_no),0) as jncomp FROM ticket_open WHERE STATUS != 'completed' AND 
                                 building_id = '$gdgid'");
            $hslncomp = mysql_fetch_array($ncomp);  


        $jmlnot = $hslncomp['jncomp'];
        $jmlcomp = $hslcomp['jcomp'];
        $jmltick = $hslncomp['jncomp'] + $hslcomp['jcomp'] ;


        $sheet = array (
                array (

                $gdgname,
                $jmlnot,
                $jmlcomp,
                $jmltick,
                ),
            );


foreach($sheet as $row => $columns) {
foreach($columns as $column => $data) {
    $objWorksheet->setCellValueByColumnAndRow($column, $row + 1, $data);
}
}

此代码仅读取最后的数据,而不是所有数据

请帮助我:)

谢谢

最佳答案

尝试以下代码:

$sheet = array();
$gdg = mysql_query("SELECT a.building_id, b.building_name FROM ticket_open a JOIN m_building b ON a.building_id = b.building_id GROUP BY b.building_id ORDER BY b.building_name ASC");
     while($hsldgd = mysql_fetch_array($gdg))                    
     {

        $gdgid = $hsldgd['building_id']; 
        $gdgname = $hsldgd['building_name'];

            $comp = mysql_query("SELECT ifnull(count(ticket_no),0) as jcomp FROM ticket_open WHERE STATUS = 'completed' AND 
                                 building_id = '$gdgid' ");
            $hslcomp = mysql_fetch_array($comp);    

            $ncomp = mysql_query("SELECT ifnull(count(ticket_no),0) as jncomp FROM ticket_open WHERE STATUS != 'completed' AND 
                                 building_id = '$gdgid'");
            $hslncomp = mysql_fetch_array($ncomp);  


        $jmlnot = $hslncomp['jncomp'];
        $jmlcomp = $hslcomp['jcomp'];
        $jmltick = $hslncomp['jncomp'] + $hslcomp['jcomp'] ;


        $sheet[] = array (
                $gdgname,
                $jmlnot,
                $jmlcomp,
                $jmltick
                );

foreach($sheet as $row => $columns) {
foreach($columns as $column => $data) {
    $objWorksheet->setCellValueByColumnAndRow($column, $row + 1, $data);
}
}

如果这不起作用,请 var_dump $sheet 变量。

P.S 正如我之前提到的,您可能想要修复 mysql 查询。

关于php - 将数据从mysql插入到phpexcel的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43608061/

相关文章:

mysql - 将主机访问权限重新分配给 MySQL 用户

php - VSCode Prettier不格式化PHP

php - Laravel Eloquent - 一次插入多个对象

php - 根据第一个选择框 (PHP) 使用 SQL 中的内容填充第二个选择框

php - 在数据库中添加用户的逻辑

mysql - 我有 2 个表,我试图随机选择另一个表中不存在的值,但我无法让它工作

php - 如何在 Laravel 中获取最新的事件记录?

php - MySQL PHP 加载数据到文件中

php - Php/Mysql 中的通用管理站点

sql - 在 MySQL 中需要某种 "conditional grouping"