gpt4 book ai didi

mysql - phpexcel - 如何从数组中循环获取结果集中的所有值

转载 作者:行者123 更新时间:2023-11-29 12:45:45 24 4
gpt4 key购买 nike

我不知道如何从 mysql 结果集中获取所有数据(行和列)。使用此代码,我无法从查询中获取所有行:

$row=1; 
$column = 'A';

$sql = "SELECT distinct c.code, p.gestion";
for ($i = 1; $i <= count($steps); $i++) {
$sql .= "
,(SELECT IFNULL(ROUND(SUM(c".$i.".`delta`),1),'')
FROM charge c".$i.", totalgestion p".$i."
WHERE c".$i.".code = p.code
AND c".$i.".steps = ".$i."
AND c".$i.".actif = 1) as delta".$i.",'' as comments".$i.",
(SELECT IFNULL(ROUND(SUM(c".$i.".`values`),1),'')
FROM charges c".$i.", totalgestion p".$i."
WHERE c".$i.".code = p".$i.".code
AND c".$i.".year = ".$year."
AND c".$i.".steps = ".$i." "
AND c".$i.".actif = 1) as total".$i." ";
;
}
$sql .= "
FROM charges c, totalgestion p
WHERE c.code = p.code
AND c.annee = ".$year."
AND c.type = 1
";

$totalvalues = RefTable::find_by_sql($sql);

foreach ($totalvalues as $totalvalue) {
$Code = $totalvalue->code;
$Gestion = $totalvalue->gestion;

for ($i = 1; $i <= count($etapes); $i++){
$Del = 'delta'.$i;
$Com = 'comments'.$i;
$Tot = 'total'.$i;
$Delta = $totalvalue->$Del;
$Comments = $totalvalue->$Com;
$Total = $totalvalue->$Tot;
}
$datas=array($Code,$Gestion,$Delta,$Comment,$Montant);

$objPHPExcel->getActiveSheet()->fromArray($datas, null, $column . $row);
$objPHPExcel->getActiveSheet()->getStyle($column . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle($column . $row)->getFill()->getStartColor()->setRGB('3F6E89');
$objPHPExcel->getActiveSheet()->getStyle($column . $row)->getFont()->getColor()->setRGB('FFFFFF');
$row++;
}

我只得到 5 列,但必须有 8 列,因为我已经对最后 3 列进行了 for 循环...:看图:

enter image description here

..通常我必须得到

如图所示:

enter image description here

在我的示例中,它可以是 5 列,也可以是 8 或 11 列,因为存在关联。我认为我的 for 循环有任何不正确的地方那么如何从循环结果集中获取所有值呢?

有人有想法吗?

提前致谢

最佳答案

您可以链接更多setCellValue

$column_init = 67; // equals C in ascii
$columns = [];
for ($i = 0; $i < count($steps) * 3; $i++) {
$columns[] = $column_init + $i;
}

$values = [];

foreach ($totalvalues as $totalvalue) {
$totalvalue = (array)$totalvalue;

for ($j = 0; $j < count($steps); $j++) {
$values[] = $totalvalue['delta' . $j];
$values[] = $totalvalue['comments' . $j];
$values[] = $totalvalue['total' . $j];
}

for ($i = 0; $i < count($columns); $i++) {
$objPHPExcel->setActiveSheetIndex(0)->setCellValue($columns[chr($i)] . $row, $values[$i]);
}

$row++;
}

关于mysql - phpexcel - 如何从数组中循环获取结果集中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25460549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com