我希望有人可以帮助我,因为我正在尝试做一些超出我限制的事情,我什至不知道 PHP 或 MySQL 中是否存在此功能,所以我在谷歌上的搜索效率不高。
我在我的 PHP/MySql 项目中使用 PHPWord,目的是我想创建一个基于模板的 word 文档。
我使用了本指南,它也在堆栈交换中。
然而,这种方法需要对行数和值进行硬编码,即在他的示例中,他使用了 cloneRow('first_name', 3),然后将表克隆为 3 行,然后继续手动定义标签,即
$doc->setValue('first_name#1', 'Jeroen');
$doc->setValue('last_name#1', 'Moors');
$doc->setValue('first_name#2', 'John');
我试图使这个动态化,在我的例子中,我试图制定一个时间表,其中一个子表正是如此,所以我的查询查找了有多少条目,然后收集它们的计数,这个然后使用 $count 动态创建正确的行数。这是我正在使用的计数:
$rs10 = CustomQuery("select count(*) as count FROM auditplanevents where AuditModuleFk='" . $result["AuditModulePk"]."'");
$data10 = db_fetch_array($rs10);
$Count = $data10["count"];
然后我用它$document->cloneRow('date', $Count);
来执行 clonerow 函数,它工作得很好,我的文档现在看起来像这样。
所以,到目前为止一切顺利。
我现在想要的是一种将查询的每一行值附加到文档中的方法,而不是手动设置标记值,即$doc->setValue('first_name#1', 'Jeroen');
我可以使用类似$doc->setValue('first_name#1', '$name from row 1');
我怀疑这将涉及 foreach 查询但不太确定的东西。
我希望以上内容是有道理的,但请随时问我其他任何问题,并成为我的个人英雄。谢谢
更新:为了清楚起见,我希望输出看起来像这样:
在我的示例中,有 5 个结果,因此创建了 5 行,我想通过以下方式设置值:
${$date1} = date column from query 1st row
${$date2} = date column from query 2nd row
${$date3} = date column from query 3rd row
${$date4} = date column from query 4th row
${$date5} = date column from query 5th row