我正在通过PHP将内容从MySQL数据库导出到Word模板(RTF)。未导出RTF文档中的记录
有一个“附录B”部分,应该显示为记录找到的所有缩略词。本节出现的最低记录数为90(即,这些记录是每个记录具有的标准首字母缩略词(tblAcronyms));然而,由于用户可以添加到此列表(tblAppendixB),所以最大记录是未知的。
Word(即RTF)文档应该显示找到的所有记录,但是它只显示第一条记录。
这是我迄今:
<?php
....
#Retrieve Appendix B records
$qry_get_AppB = "SELECT vAcronym, vAcronymDesc FROM tblAcronyms
UNION SELECT vAcronym, vAcronymDesc FROM tblAppendixB
WHERE fkID = ". $i_fk_id . " ORDER BY vAcronym ASC";
$qry_appb_result = mysql_query($qry_get_AppB);
$qryAppBno_rows = mysql_num_rows($qry_appb_result);
//Generate the headers to help a browser choose the correct location
header('Content-Type: application/msword');
header('Content-Disposition: inline; filename="'.$vProgramName.'_rec.rtf");
//Open the template file
$tfilename = 'Appb_Template.rtf';
$fp = fopen($tfilename, 'r');
//Read the template into a variable
$toutput = fread($fp, filesize($tfilename));
fclose($fp);
//Replace the place holders in the template with data
if($qryAppBno_rows > 0)
{
while($rowAppB = mysql_fetch_array($qry_appb_result))
{
$vAppB = $rowAppB['vAcronym'] . '-' . $rowAppB['vAcronymDesc'] . "\r\n";
$toutput = str_replace('<<vAppB>>', $vAppB, $toutput);
}
}
//Send the generated document to the browser
echo $toutput;
?>
我已搜查这个论坛和其他人,但还没有找到一个解决方案。
任何帮助,非常感谢。
谢谢你给我一个关于如何解决我的问题的想法。当我回应变量时,我收到所有记录(即收集所有条目;一件好事);所以我试着创建另一个变量,然后存储这些值(即$ appendix_result = $ appendix),然后执行$ toutput = str_replace('>',$ appendix_result,$ toutput);但那也没用。我几乎在正确的轨道上,你的建议? –
Nicole
2012-04-10 11:23:19
Ooops ...应该阅读@Zip ...谢谢你给我....(对不起) – Nicole 2012-04-10 11:36:22
我做了一些修改......它现在收集所有条目并将它们导出到Word模板,但是,它不会中断(即插入新的换行符);内容一起运行。这是我有.... while($ rowAppB = mysql_fetch_array($ qry_appb_result)){ $ vAppendixB [] = $ rowAppB ['vAcronym']。 ' - '。 $ rowAppB ['vAcronymDesc']。 $ t_newline; $ vAppB = implode($ t_newline,$ vAppendixB); } $ toutput = str_replace('<>',$ vAppB,$ toutput);我知道我很接近,但无法弄清楚我缺少的东西。再次,任何援助非常感谢。 –
Nicole
2012-04-16 12:07:48