Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mysql-文档检索和显示_Php_Mysql - Fatal编程技术网

php mysql-文档检索和显示

php mysql-文档检索和显示,php,mysql,Php,Mysql,我构建了一个文档上传管理屏幕,我的客户端可以在这里浏览pdf文档并将其上传到mysql数据库 我有两张单独的议程表,一张是会议记录表。两者都有单独的表名“upload”和“upload_mins” 在index.php页面上,我让页面获取数据库的每一行,并在“下载”页面上显示所有有效文档 我遇到了一个问题 每个数据库都设置为增量ID。现在有两个数据库,它们将使用相同的ID 因此,我从议事日程中抽出: 我也从会议记录表中抽出: 它们恰好有相同的增量ID 有没有办法避免这种情况?我是否可以在分钟

我构建了一个文档上传管理屏幕,我的客户端可以在这里浏览pdf文档并将其上传到mysql数据库

我有两张单独的议程表,一张是会议记录表。两者都有单独的表名“upload”和“upload_mins”

在index.php页面上,我让页面获取数据库的每一行,并在“下载”页面上显示所有有效文档

我遇到了一个问题

每个数据库都设置为增量ID。现在有两个数据库,它们将使用相同的ID

因此,我从议事日程中抽出:

我也从会议记录表中抽出:

它们恰好有相同的增量ID

有没有办法避免这种情况?我是否可以在分钟中添加一个字段参数,以确保它们在提取文档时没有相同的URL

创建整型字段或txt字段


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){
回声';
}
...