簡體   English   中英

從MySQL生成多個HTML表

[英]Multiple html table generation from mysql

我有這樣的mysql表結構(讓我們說tableA):

unitID, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8. 

我使用以下代碼創建數據表。

<html>

<head>
    <style>
        .tbstyle {
            border: 1px solid #CCC;
            font-family: Arial, Helvetica, sans-serif;
            font-size: 14px;
            border-collapse: collapse;
            float: left;
        }

        .tbstyle td {
            padding: 3px;
            margin: 2px;
            border: 1px solid #ccc;
            text-align: center;
            height: 13px;
        }
    </style>

</head>

<body>

    <table class="tbstyle" id="">

        <?php

  include ("config.php");

  $sql = "SELECT Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8 FROM tableA ";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {

   while($row = $result->fetch_assoc()) 
   {
        echo   "</td><td>". $row["Value1"] . "</td><td>" . $row["Value2"]. "</td><td>" . $row["Value3"]."</td><td>" . $row["Value4"]."</td><td>" . $row["Value5"].
            "</td><td>" . $row["Value6"]."</td><td>" . $row["Value7"]."</td><td>" . $row["Value8"]. "</td></tr>";
   }

      echo "</table>";

} else { echo "0 results"; }
$conn->close();

    ?>

    </table>

</body>

</html>

我有另一個具有saleID的mysql表(讓我們說tableB)。 我想在表格上方並排生成與tableB上的saleID數量一樣多的數字。

並且我需要使每個生成的<table id="">具有唯一的saleID。 我的意思是表ID應該以saleID命名。 我在代碼空白中保留了表格ID。 <table class="tbstyle" id="">

我會很感激我能得到的任何幫助。 謝謝。

在此處輸入圖片說明

這是我當前的代碼,它不完整,沒有給出預期的結果:

<table class="tbstyle" id="">

 <?php

$conn=mysqli_connect("localhost","root","","mydb");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

 $sql="SELECT saleID FROM tableB";

if ($result=mysqli_query($conn,$sql))
  {

  $rowcount=mysqli_num_rows($result);

  }

  $sql = "SELECT Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8 FROM tableA ";
  $result = $conn->query($sql);

  if ($result->num_rows > 0) {

   while($row = $result->fetch_assoc()) 

      for ($x = 0; $x <= $rowcount; $x++)  

   {

        echo   "</td><td>". $row["Value1"] . "</td><td>" . $row["Value2"]. "</td><td>" . $row["Value3"]."</td><td>" . $row["Value4"]."</td><td>" . $row["Value5"].
            "</td><td>" . $row["Value6"]."</td><td>" . $row["Value7"]."</td><td>" . $row["Value8"]. "</td></tr>";
   }

      echo "</table>";

} else { echo "0 results"; }
$conn->close();

    ?>   

</table>

好的,這是我的建議。

  1. SELECT saleID FROM tableB ORDER BY saleID
  2. 循環結果。 對於每個saleID,請執行...
  3. 回顯開始您的表( <table>, <thead> ... </thead><tbody>
  4. SELECT * FROM tableA
  5. 循環顯示這些結果。 對於每一行,回顯表的每一行( <tr><td>...</td>...</tr> )。
  6. 關閉表格( </tbody></table> )。

因此,您循環兩次,一次循環到tableB,再次循環到tableA。 每個saleID在內部循環中都是一個新表。

我仍然不清楚的一個細節是tableA和tableB之間的鏈接在哪里。 您如何知道tableA中的值適用於您剛剛閱讀的saleID? 無論如何,我的答案嚴格來說是HTML-PHP版本,在這里沒有數據庫邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM