Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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/67.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
PHP按日期分组,输出到Excel_Php_Mysql_Phpexcel - Fatal编程技术网

PHP按日期分组,输出到Excel

PHP按日期分组,输出到Excel,php,mysql,phpexcel,Php,Mysql,Phpexcel,我的数据中包含一个日列。每天有400多排 我想将每天的数据导出到他们自己的Excel表格中 要对我使用的数据进行分组,请按日期从mydata group(mydata.day)中选择* 如何获取所有分组数据,并将每个日期数据插入到各自的工作表中,插入excel文档?现在,我的尝试看起来只会插入一天的数据 基本上,我需要为每个使用一个,以遍历每个分组的数据。。如中所示,每天循环并输出其工作表中的数据 require_once 'PHPExcel.php'; require_once 'PHPExc

我的数据中包含一个日列。每天有400多排

我想将每天的数据导出到他们自己的Excel表格中

要对我使用的数据进行分组,请按日期从mydata group(mydata.day)中选择*

如何获取所有分组数据,并将每个日期数据插入到各自的工作表中,插入excel文档?现在,我的尝试看起来只会插入一天的数据

基本上,我需要为每个使用一个
,以遍历每个分组的数据。。如中所示,每天循环并输出其工作表中的数据

require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';

@mysql_select_db($db['name']);

$query = mysql_query('SELECT * FROM mydata GROUP BY DATE(mydata.day)');
)
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Create a new worksheet
$objPHPExcel->createSheet();

$sheet=0; //this will need to be outside a loop so I can $sheet++ to set the new ActiveSheetIndex

// Set excelrow to 2 so we skip the line of headings
$excelrow=2;

while($row = mysql_fetch_array($query)){

  // Set sheet index
  $objPHPExcel->setActiveSheetIndex($sheet);

  // Set the sheet title
  $objPHPExcel->getActiveSheet()->setTitle($row['day']);

  // Set sheet headings
  $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Name');
  $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Email');

  // Get the data
  $objPHPExcel->getActiveSheet()->SetCellValue('A'.$excelrow, $row['name']);
  $objPHPExcel->getActiveSheet()->SetCellValue('B'.$excelrow, $row['email']); 

  $excelrow++; 
} 

// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="name_of_file.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');

GROUP BY只为每个日期提供一行,并允许您使用聚合函数,如
count()
min()
max()
,等等。您需要对每个日期使用
WHERE day=…
进行查询,以获取该日期的所有行。@Devon感谢Devon的解释。当我不知道天的值时,尤其是在循环中,我如何使用
WHERE day=
。你能提供一个答案来说明这一点吗?你可以使用GROUP BY查询中的日期,该查询将提供一个日期列表。所以您只需要两个查询语句和两个循环。不过,您应该看看如何使用mysqli或PDO,PHP中不推荐使用mysql。谢谢@Devon。想提供一个答案让我接受吗?如果你能写一个快速的例子,也将非常感谢!再次感谢