Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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过滤器附件更快速的解决方案?_Php_Sql - Fatal编程技术网

PHP过滤器附件更快速的解决方案?

PHP过滤器附件更快速的解决方案?,php,sql,Php,Sql,在我的数据库中,我有一个订单表,有时我需要按照一个特定的订单附加文件 我找到两种方法来完成这项工作: 1) 将文件存储到attachement dir中,文件名为es。12-user01-nameoffile.pdf,其中12是数字顺序,过滤附件目录的所有内容 2) 创建一个db表,用于将附件信息存储到orderID列中。使用sql查询的用户名、文件名和筛选器 当附件目录中有许多文件时,Witch是未来更快速(或最好)的解决方案吗 筛选附件目录的我的PHP代码 $directory = ($_S

在我的数据库中,我有一个订单表,有时我需要按照一个特定的订单附加文件

我找到两种方法来完成这项工作:

1) 将文件存储到attachement dir中,文件名为es。12-user01-nameoffile.pdf,其中12是数字顺序,过滤附件目录的所有内容

2) 创建一个db表,用于将附件信息存储到orderID列中。使用sql查询的用户名、文件名和筛选器

当附件目录中有许多文件时,Witch是未来更快速(或最好)的解决方案吗

筛选附件目录的我的PHP代码

$directory = ($_SERVER['DOCUMENT_ROOT'] . "/orders/attachments/");
$rowcount=0;
if (is_dir($directory)) {
   if ($directory_handle = opendir($directory)) {
      while (($file = readdir($directory_handle)) !== false) {
          if((!is_dir($file))&($file!=".")&($file!="..")) { 
              $attachments = explode('-', $file) ;
                 if($attachments[0] == $_SESSION['orderId']) {
                     $rowcount++; 
                 }
          }
     }
      closedir($directory_handle);
   }
}

如果$rowcount>0,我会为带有附件列表过滤器的页面显示一个带有链接的图标。

如果ID位于文件名中,则根本不需要将其存储在数据库中。在订单表中的
附件
列如何?请确保您具有此组合之一的唯一值
12-user01-nameoffile
@slash197我知道,但是更快(在时间和服务器负责方面)过滤目录还是使用sql查询?@ra_htial我认为这是一种解决方案,但可能有许多相同顺序的附件