Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从mysql插入phpexcel的阵列_Php_Mysql - Fatal编程技术网

将数据从mysql插入phpexcel的阵列

将数据从mysql插入phpexcel的阵列,php,mysql,Php,Mysql,Iam使用PHPEXCEL类将数据和柱状图从mysql导出到excel 如果我阅读phpexcel中的示例,请使用数组 $sheet = array( array( '', '2010', '2011', '2012', ), array( 'Q1', '12', '15', '21', ), array( 'Q2', '56', '73', '86', ), array

Iam使用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);
}
}
如果这不起作用,请变量转储
$sheet
变量


正如我前面提到的,您可能想要修复mysql查询。

您是否尝试过调试它,并查看是否从mysql部分得到正确的结果?(获取+构建阵列)您的问题可能在这里-
$sheet=array
。while循环的每次迭代都会覆盖变量。此外,循环中不应该有mysql查询,这是非常低效的。谢谢,@Gal,是的,我在sheet=array的问题。。。。。。我不知道为什么它不能循环,但如果不插入数组,它仍然在mysql中循环,而。。。