php mysql-文档检索和显示
我构建了一个文档上传管理屏幕,我的客户端可以在这里浏览pdf文档并将其上传到mysql数据库 我有两张单独的议程表,一张是会议记录表。两者都有单独的表名“upload”和“upload_mins” 在index.php页面上,我让页面获取数据库的每一行,并在“下载”页面上显示所有有效文档 我遇到了一个问题 每个数据库都设置为增量ID。现在有两个数据库,它们将使用相同的ID 因此,我从议事日程中抽出: 我也从会议记录表中抽出: 它们恰好有相同的增量ID 有没有办法避免这种情况?我是否可以在分钟中添加一个字段参数,以确保它们在提取文档时没有相同的URL 创建整型字段或txt字段php mysql-文档检索和显示,php,mysql,Php,Mysql,我构建了一个文档上传管理屏幕,我的客户端可以在这里浏览pdf文档并将其上传到mysql数据库 我有两张单独的议程表,一张是会议记录表。两者都有单独的表名“upload”和“upload_mins” 在index.php页面上,我让页面获取数据库的每一行,并在“下载”页面上显示所有有效文档 我遇到了一个问题 每个数据库都设置为增量ID。现在有两个数据库,它们将使用相同的ID 因此,我从议事日程中抽出: 我也从会议记录表中抽出: 它们恰好有相同的增量ID 有没有办法避免这种情况?我是否可以在分钟
i、 e.您说您遇到的问题是URL被复制。你有两个不同的选择来解决这个问题 第一个是创建一个标识符,告诉您需要哪个表。您可以有
agenda.php
和minutes.php
,也可以有clerk.php?ID=77&type=1
和clerk.php?ID=77&type=2
这将允许您知道正在引用哪个表。这也是我建议的方法。只要您有办法知道需要哪个表,就没有理由避免在不同的表中重复键
第二种选择是将所有记录放在一个表中。然后,您可以添加一个type
列,指定文档的类型。然后,您可以不使用clerk.php文件,但需要更改上载页面以填充type
列
如果您只是在数据库中存储PDF,则此表中不需要任何内容,除了
id
、类型和文档本身。您说您遇到的问题是URL被复制。你有两个不同的选择来解决这个问题
第一个是创建一个标识符,告诉您需要哪个表。您可以有agenda.php
和minutes.php
,也可以有clerk.php?ID=77&type=1
和clerk.php?ID=77&type=2
这将允许您知道正在引用哪个表。这也是我建议的方法。只要您有办法知道需要哪个表,就没有理由避免在不同的表中重复键
第二种选择是将所有记录放在一个表中。然后,您可以添加一个type
列,指定文档的类型。然后,您可以不使用clerk.php文件,但需要更改上载页面以填充type
列
如果您只是在数据库中存储PDF,那么除了id
、type
和文档本身之外,此表中不需要任何内容。如果这些只是文档,您可以将它们存储在单个表中,但有一个名为type
的列,用于区分会议记录和议程。这样,ID将是唯一的
您还可以将types
列扩展为types
表的外键,以便将来可以轻松地将其扩展为包含其他文档类型,如电子表格
这也有助于前端显示,因为您只需要一个查询就可以在批处理或时间范围内获取文档,但需要将它们添加到不同的数组中。例如:
// get the last 20 uploaded documents
$sql = "SELECT * FROM documents ORDER BY created DESC LIMIT 0,20";
$res = mysql_query($sql);
while ($doc = mysql_fetch_object($res)) {
$type = $doc->type;
if (!isset($docs[$type]) || !is_array($docs[$type])) {
$docs[$type] = array();
}
$docs[$type][] = $doc;
}
// loop over agendas
foreach ($docs['agendas'] as $agenda) {
echo '<a href="download.php?id=' . $agenda->id . '">' . $agenda->title . '</a>';
}
// loop over minutes
foreach ($docs['minutes'] as $minutes) {
echo '<a href="download.php?id=' . $minutes->id . '">' . $minutes->title . '</a>';
}
...
//获取最后20个上载的文档
$sql=“按创建的描述限制0,20从文档订单中选择*”;
$res=mysql\u查询($sql);
而($doc=mysql\u fetch\u object($res)){
$type=$doc->type;
如果(!isset($docs[$type])| |!是数组($docs[$type])){
$docs[$type]=array();
}
$docs[$type][]=$doc;
}
//循环讨论议程
foreach($docs['agents']作为$agenda){
回声';
}
//循环数分钟
foreach($docs['minutes']作为$minutes){
回声';
}
...
如果这些只是文档,您可以将它们存储在一个表中,但有一个名为的列,用于区分会议记录和议程。这样,ID将是唯一的
您还可以将types
列扩展为types
表的外键,以便将来可以轻松地将其扩展为包含其他文档类型,如电子表格
这也有助于前端显示,因为您只需要一个查询就可以在批处理或时间范围内获取文档,但需要将它们添加到不同的数组中。例如:
// get the last 20 uploaded documents
$sql = "SELECT * FROM documents ORDER BY created DESC LIMIT 0,20";
$res = mysql_query($sql);
while ($doc = mysql_fetch_object($res)) {
$type = $doc->type;
if (!isset($docs[$type]) || !is_array($docs[$type])) {
$docs[$type] = array();
}
$docs[$type][] = $doc;
}
// loop over agendas
foreach ($docs['agendas'] as $agenda) {
echo '<a href="download.php?id=' . $agenda->id . '">' . $agenda->title . '</a>';
}
// loop over minutes
foreach ($docs['minutes'] as $minutes) {
echo '<a href="download.php?id=' . $minutes->id . '">' . $minutes->title . '</a>';
}
...
//获取最后20个上载的文档
$sql=“按创建的描述限制0,20从文档订单中选择*”;
$res=mysql\u查询($sql);
而($doc=mysql\u fetch\u object($res)){
$type=$doc->type;
如果(!isset($docs[$type])| |!是数组($docs[$type])){
$docs[$type]=array();
}
$docs[$type][]=$doc;
}
//循环讨论议程
foreach($docs['agents']作为$agenda){
回声';
}
//循环数分钟
foreach($docs['minutes']作为$minutes){
回声';
}
...