如何使用php水平显示DB中的所有文件?

如何使用php水平显示DB中的所有文件?,php,html,mysql,crud,Php,Html,Mysql,Crud,我已将文件上载到目录和数据库中,我希望在浏览器中显示文件并使其可下载,但在浏览器中显示的文件中有一个。下面是数据库的外观。这是我的文件目录和我编写的代码 <?php $Year = mysqli_query($link, "SELECT distinct `Year` FROM `returndocs` WHERE EmailAddress='$name'"); $Returns = 'Returns'; if($Year->num_rows>0)

我已将文件上载到目录和数据库中,我希望在浏览器中显示文件并使其可下载,但在浏览器中显示的文件中有一个。下面是数据库的外观。这是我的文件目录和我编写的代码

<?php
     $Year = mysqli_query($link, "SELECT distinct `Year` FROM `returndocs` WHERE EmailAddress='$name'");
     $Returns = 'Returns';
     if($Year->num_rows>0)
         {
            while ($row=$Year->fetch_assoc())
                {
                   echo "<button type='button' class='collapsible'>
                           <div style='display:flex'>
                              <div><img src='../Assets/images/icons/folder-icon.png' width='18' height='18'></div>
                                <div style='margin-left:5px;'>".$row['Year'].' '.$Returns."</div>
                           </div>
                         </button>";
                }
          }
     else{
             echo "<h6 style='color:#bf9038;'>No returns Submitted!</h6>";
         }
// Viewing files from Db and from directory 
$SelectUploadedFiles = mysqli_query($link, "SELECT * FROM `returndocs` where EmailAddress='$name';");
if($SelectUploadedFiles->num_rows > 0)
   {
       while($file=$SelectUploadedFiles->fetch_assoc())
            {
               echo "<div class='content'>
                      <table>
                          <tr><a href=".$file['ReturnDir']." download>".$file['ReturnName']."</a></tr>
                      </table>
                  </div>";
             }
    }
?>

在循环外部定义表,在循环内部仅定义行

例如:

if($SelectUploadedFiles->num\u rows>0){
//定义div和表的开头元素
$ouput='';
而($file=$SelectUploadedFiles->fetch_assoc()){
//为每个条目追加一个新表行
$output.='';
}
//关闭表和div元素
$output.='';
//出示桌子
echo$输出;
}

顺便说一句,您的代码易受SQL注入攻击

我看到你得到了这个问题的答案,但我想补充一些额外的信息

现在最好不要使用HTML格式的表,因为它们有很多问题,其他HTML标签(如ul、li等)很容易处理这些问题

有关详细信息:

如果你看看大多数现代网站,它的divul是使用最多的,因为它们的代码较少,灵活且易于管理。同样,HTML只是将数据放在适当的位置

在这里,您希望水平显示它们,这应该是分配给CSS的任务。它是如此简单,你所要做的就是使用flex并提及你想要的方式,它以最简单、最快捷的方式为你做到这一点

ulli{
显示:块;
文字装饰:无;
}
保险商实验室{
显示器:flex;
弯曲方向:立柱;
}
.反向{
弯曲方向:柱反向;
}
水平列出
  • 一,
  • 二,
  • 三,
  • 四,
反向水平排列
  • 一,
  • 二,
  • 三,
  • 四,

要在一行中显示文件(例如file1.txt、file2.txt…),只需将
移出循环,并仅在循环中附加链接即可<代码>$output.=''当我们这么做的时候,将html与php混合是一种更糟糕的罪恶。我们已经有了诱人的库至少十年了,人们还在哪里学习呢?我完全理解混合使用php和html有多致命。我花了一段时间才明白这一点。只需使用php获取数据,将其放入必要的html标记,然后仅使用CSS来修复布局。否则,在大规模情况下,这可能会导致性能问题。最好的部分是CSS被缓存,这样你的站点加载得更快。