我正在页面上,您可以为客户生成带有项目的Word文档。有一个名为“最新生成的文档”的选项卡。如何保存每个生成的文档名称并将其添加到列表?我应该使用数组吗?
要定义文件名,我正在使用此代码:
$filename = "".$name." ".$surname."_report.docx";
姓名和姓氏取决于我在创建文档时选择的客户。该文件保存到文件夹“documents”,但每次都用新文件覆盖。
答案 0 :(得分:1)
如果你没有覆盖文件,你可以扫描你的目录并将每个找到的文件添加到一个数组中,另一种方法是将文件名存储在数据库中。
$data = scandir($path_to_directory);
foreach($data as $file) {
// display filename
}
1)为您的用户创建文档
2)在数据库中插入文件名,也可能在文件创建/插入时插入
3)当您应该显示最新生成的文档时,您在数据库中查询按创建的DESC排序的这些文件名
like this for example:
$documents = array();
$query = "SELECT * FROM tbl_document ORDER BY doc_created DESC";
if(($result = mysql_query($query))) {
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
$documents[] = $row;
}
mysql_free_result($result);
}
现在您有一个包含可以向用户显示的最新文档的数组,我想您还希望根据doc_created的值从数据库中删除记录。
// the following query will remove documents older than 1 hour from the database
mysql_query("DELETE FROM tbl_document WHERE
UNIX_TIMESTAMP(doc_created) < ".(time()-(60*60)));
以上假设您创建了一个如下所示的表:
CREATE TABLE tbl_document (
doc_id int(11) unsigned NOT NULL PRIMARY_KEY AUTO_INCREMENT,
doc_filename VARCHAR(260) NOT NULL,
doc_created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);