将关联数组与 mysqli_fetch_assoc() php 组合
Combining an associative array with mysqli_fetch_assoc() php
我正在使用 PHP Excel 从数据库中存储的数据创建一个 excel 文档。当涉及到在 html table 中显示数据时,它显示得很好,但是当涉及到 excel 文件时,我遇到了障碍。我的代码如下:
$excelData = array(
0 => array('Jackson','Barbara','27','F','Florida'),
1 => array('Kimball','Andrew','25','M','Texas'),
2 => array('Baker','John','28','M','Arkansas'),
3 => array('Gamble','Edward','29','M','Virginia'),
4 => array('Anderson','Kimberly','23','F','Tennessee'),
5 => array('Houston','Franchine','25','F','Idaho'),
6 => array('Franklin','Howard','24','M','California'),
7 => array('Chen','Dan','26','M','Washington'),
8 => array('Daniel','Carolyn','27','F','North Carolina'),
9 => array('Englert','Grant','25','M','Delaware')
);
我需要 mysql 数据共同创建一个数组,如上所示。这样我就可以在下面的代码中使用它来显示特定的 table 单元格。
for($i=0; $i<count($excelData); $i++){
$ii = $i+3;
$objPHPExcel->getActiveSheet()->setCellValue('A'.$ii, $excelData[$i][0]);
$objPHPExcel->getActiveSheet()->setCellValue('B'.$ii, $excelData[$i][1]);
$objPHPExcel->getActiveSheet()->setCellValue('C'.$ii, $excelData[$i][2]);
$objPHPExcel->getActiveSheet()->setCellValue('D'.$ii, $excelData[$i][3]);
$objPHPExcel->getActiveSheet()->setCellValue('E'.$ii, $excelData[$i][4]);
}
包括我的 mysqli 查询在内的完整循环代码如下:
$qr = "SELECT * FROM ". DB_PROJECT_DETAILS_TBL ." WHERE project_id = '$project_id' ORDER BY id DESC";
$mx = $db->runQuery($qr);
// check for empty result
while ($row = mysqli_fetch_array($mx)) {
$excelData = array(
0 => array($row['col1'], $row['col2'], $row['col3'], $row['col4'], $row['col5'])
);
}
如有任何帮助,我们将不胜感激。
如果我没理解错,你需要替换这段代码
while ($row = mysqli_fetch_array($mx)) {
$excelData = array(
0 => array($row['col1'], $row['col2'], $row['col3'], $row['col4'], $row['col5'])
);
}
使用此代码
$excelData = array();
while ($row = mysqli_fetch_array($mx)) {
$excelData[] = array($row['col1'], $row['col2'], $row['col3'], $row['col4'], $row['col5']);
}
我也认为您可以使用此代码段。我认为它会稍微降低复杂性
$qr = <<<SQL
SELECT
LIST ONLY NECESSARY COLUMNS
FROM ". DB_PROJECT_DETAILS_TBL ."
WHERE project_id = '$project_id'
ORDER BY id DESC
SQL;
$mx = $db->runQuery($qr);
$excelData = mysqli_fetch_all($mx, MYSQLI_NUM);
$objPHPExcel->getActiveSheet()->fromArray($excelData, null,'A3');
我正在使用 PHP Excel 从数据库中存储的数据创建一个 excel 文档。当涉及到在 html table 中显示数据时,它显示得很好,但是当涉及到 excel 文件时,我遇到了障碍。我的代码如下:
$excelData = array(
0 => array('Jackson','Barbara','27','F','Florida'),
1 => array('Kimball','Andrew','25','M','Texas'),
2 => array('Baker','John','28','M','Arkansas'),
3 => array('Gamble','Edward','29','M','Virginia'),
4 => array('Anderson','Kimberly','23','F','Tennessee'),
5 => array('Houston','Franchine','25','F','Idaho'),
6 => array('Franklin','Howard','24','M','California'),
7 => array('Chen','Dan','26','M','Washington'),
8 => array('Daniel','Carolyn','27','F','North Carolina'),
9 => array('Englert','Grant','25','M','Delaware')
);
我需要 mysql 数据共同创建一个数组,如上所示。这样我就可以在下面的代码中使用它来显示特定的 table 单元格。
for($i=0; $i<count($excelData); $i++){
$ii = $i+3;
$objPHPExcel->getActiveSheet()->setCellValue('A'.$ii, $excelData[$i][0]);
$objPHPExcel->getActiveSheet()->setCellValue('B'.$ii, $excelData[$i][1]);
$objPHPExcel->getActiveSheet()->setCellValue('C'.$ii, $excelData[$i][2]);
$objPHPExcel->getActiveSheet()->setCellValue('D'.$ii, $excelData[$i][3]);
$objPHPExcel->getActiveSheet()->setCellValue('E'.$ii, $excelData[$i][4]);
}
包括我的 mysqli 查询在内的完整循环代码如下:
$qr = "SELECT * FROM ". DB_PROJECT_DETAILS_TBL ." WHERE project_id = '$project_id' ORDER BY id DESC";
$mx = $db->runQuery($qr);
// check for empty result
while ($row = mysqli_fetch_array($mx)) {
$excelData = array(
0 => array($row['col1'], $row['col2'], $row['col3'], $row['col4'], $row['col5'])
);
}
如有任何帮助,我们将不胜感激。
如果我没理解错,你需要替换这段代码
while ($row = mysqli_fetch_array($mx)) {
$excelData = array(
0 => array($row['col1'], $row['col2'], $row['col3'], $row['col4'], $row['col5'])
);
}
使用此代码
$excelData = array();
while ($row = mysqli_fetch_array($mx)) {
$excelData[] = array($row['col1'], $row['col2'], $row['col3'], $row['col4'], $row['col5']);
}
我也认为您可以使用此代码段。我认为它会稍微降低复杂性
$qr = <<<SQL
SELECT
LIST ONLY NECESSARY COLUMNS
FROM ". DB_PROJECT_DETAILS_TBL ."
WHERE project_id = '$project_id'
ORDER BY id DESC
SQL;
$mx = $db->runQuery($qr);
$excelData = mysqli_fetch_all($mx, MYSQLI_NUM);
$objPHPExcel->getActiveSheet()->fromArray($excelData, null,'A3');