合并表格并在 HTML 中显示它们

Union tables and displaying them in HTML

提问人:Amity 提问时间:11/2/2023 更新时间:11/2/2023 访问量:31

问:

如果我的措辞令人困惑,我深表歉意,但我有一个关于我想合并的三个表的问题,然后将它们显示在 html 表中,因为我不确定我现在的做法是否正确。我有三个表,一个名为“Patients”,有 3 列,“Patient_Records”有 5 列,“Patient_App”也有 5 列。然后在我的 html 表中,我有 13 列。我为患者表创建了 null 值,但我不确定显示它们的方式是否正确。


<!DOCTYPE html> 
<html> 
<head> 
  <meta charset="UTF-8">
  <link rel="stylesheet" href="style1.css">
  <title>Page Title</title> 
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@600&display=swap" rel="stylesheet">
 
  <h1>Patient Records</h1>
  <div class = "center">
    <table style="width:60%">
      <tr>
        <th>Patient First Name</th>
        <th>Patient Last Name</th>
        <th>Patient ID</th>
        <th>Date of Birth</th>
        <th>Age</th>
        <th>Patient Address & Cell</th>
        <th>Shots Given</th>
        <th>Illness</th>
        <th>Appointment Date</th>
        <th>Appointment Type</th>
        <th>Procedure Date</th>
        <th>Procedure Type</th>
        <th>Doctor</th>
      </tr>
      <tr>
        <?php

          require_once('/afs/cad.****/u/a/m/***/public_html/connect.php'); //private info in *
          $sql = "SELECT FirstName, LastName, PatientID, Null as col4, Null as col5 FROM Patients
          UNION
          SELECT DOB, Age, Addr&Phone, Shots, Illnes FROM Patient_Records
          Union
          SELECT AppDate, AppType, ProcedureDate, ProcedureType, Doctor FROM Patient_app";
          $result = $con-> query($sql);

          if($result-> num_rows > 0){
            while($row = $result-> fetch_assoc()){
              echo "<tr><td>" . $row["FirstName"] . "</td><td>" . $row["LastName"] . "</td><td>" . $row["PatientID"] . "</td><td>" . $row["col4"] .  "</td><td>" . $row["col5"] . "</td></tr>"; 
            }
            echo "</table>";
          }
          else{
            echo "0 result";
          }
        $con-> close();
        ?>
    </table>

  </div>
<script src="myscripts.js"></script>  
</body> 
</html> 

(我还没有完全完成包括每一列) 正如您在上面的代码中看到的那样,当我显示行时,我包含空列“$row[col4]”。这是必要的,还是我跳过了这部分,因为它只会插入一个空白单元格,因为它在技术上不存在于我的原始表格中?

php html mysql

评论

0赞 ADyson 11/2/2023
最后 2 列显然存在于合并表中,这些表也是查询结果的一部分,因此在显示从这些表返回的任何记录时,您需要回显这些列。因此,基于此,您现在拥有它的方式是有道理的。echo
0赞 PM 77-1 11/2/2023
您可能不了解 SQL 中的工作原理以及它的功能。我建议完成一个教程:mysqltutorial.org/sql-union-mysql.aspx 或类似的教程。UNION
0赞 ADyson 11/2/2023
当然,如果要检查特定行的该字段中的值是否为空,然后决定不打印该行上的单元格,则可以这样做。这完全是你的选择。
0赞 ADyson 11/2/2023
恕我直言,将来自 3 个不同数据库表的记录放入一个 HTML 表中,而不标记不同列的含义,或显示任何给定结果来自哪个表,可能会让最终用户感到困惑,你不觉得吗?
1赞 ADyson 11/2/2023
表头包含的列数远远多于查询实际输出的列数。查询仅输出 5 列。我认为 PM 77-1 可能是对的......我想知道你是否真的不明白UNION查询会产生什么。在将查询放入PHP之前,请尝试直接在MySQL中运行该查询(例如通过phpMyAdmin或MySQL Workbench),以便您可以看到输出的内容。我怀疑这不是你真正希望的输出。您可能需要重新考虑 SQL 代码。

答: 暂无答案