我目前的代码:
<?php
/** PHPExcel */
require_once '../Classes/PHPExcel.php';
/** PHPExcel_IOFactory */
require_once '../Classes/PHPExcel/IOFactory.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
// Set properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
$result = 'select * from table1';
for($i=0;$i<count($result);$i++) {
$result1 = 'select * from table2 where table1_id = ' . $result[$i]['table1_id'];
for ($j=0;$j<count($result1);$j++) {
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A' . $j, $result1[$j]['name']);
}
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Save Excel 2007 file
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
// Echo done
echo date('H:i:s') . " Done writing file.\r\n";
}
?>
上面的代码执行并保存文件夹中没有.xlsx
个文件,但我得到的问题是在所有保存的excel文件中执行的count(result1)
循环中最大for
答案 0 :(得分:3)
在深入研究之前,有一点是明确的
您还没有执行$ result的查询,也没有获取它,而且在$ result1查询中你正在使用它,这是不可能的,
$ result1
存在同样的问题您可以使用:
$result = mysql_query('select * from table1');
while($fetch_result=mysql_fetch_array($result))
{
$result2 = mysql("select * from table2 where table1_id = '".$fetch_result['table1_id']."'");
while($fetch_result2=mysql_fetch_array($result2)
{
--your code--
但最好是编写JOIN而不是这两个查询
答案 1 :(得分:0)
您需要mysql_num_rows
- http://php.net/manual/en/function.mysql-num-rows.php
$q = 'select * from table1';
$res = mysql_query($q);
$count = mysql_num_rows($result);
for ($j=0;$j<$count;$j++) {
#code here
}
您可能还想查看mysql_fetch_assoc