簡體   English   中英

在HTML表中顯示帶有可變數據的MySQL查詢結果

[英]Display MySQL query results with variable data in an HTML table

所以我有一個查詢來獲取所需的值:

SELECT `UserId` FROM `usertable` WHERE `AssignedUserId` = '$userid';

查詢的最大結果數將恆定為8。

但是,取決於運行查詢的時間,結果可能會有所不同。 最小值將始終為1。

我將結果顯示在HTML表中,如果值為8,則顯示:

+----------+----------+----------+----------+
| value 1  | value 2  | value 3  | value 4  |
+----------+----------+----------+----------+
| vaule 5  | value 6  | value 7  | value 8  |
+----------+----------+----------+----------+

如果值較小,例如5,則應顯示以下內容:

+----------+----------+----------+----------+
| value 1  | value 2  | value 3  | value 4  |
+----------+----------+----------+----------+
| vaule 5  |  empty   |  empty   |  empty   |
+----------+----------+----------+----------+

現在,我將以下PHP代碼用於值:

if (GetRows > 0) {
  $temp2 = FetchArray;

  $tmpu0 = $temp2[0];      
  $tmpu1 = $temp2[1];
  $tmpu2 = $temp2[2];
  $tmpu3 = $temp2[3];
  $tmpu4 = $temp2[4];
  $tmpu5 = $temp2[5];
  $tmpu6 = $temp2[6];
  $tmpu7 = $temp2[7];
} else {
  $tmpu0 = "Empty";
  $tmpu1 = "Empty";
  $tmpu2 = "Empty";
  $tmpu3 = "Empty";
  $tmpu4 = "Empty";
  $tmpu5 = "Empty";
  $tmpu6 = "Empty";
  $tmpu7 = "Empty";
}

但是,只有在值為8時,它才能正確顯示。否則,我將得到一個空白表。 甚至沒有“空”。

我做錯了什么? 有沒有更好的方法來獲得我想要的結果?

感謝您的幫助...

謝謝!

完整的PHP文件:

<?php
$sql = "SELECT `UserId` FROM `usertable` WHERE `AssignedUserId` = '$userid'";

$results = Query($sql);

if (Rows($results) > 0) {
  $temp2 = Fetch($results);

  $tmpu0 = $temp2[0];
  $tmpu1 = $temp2[1];
  $tmpu2 = $temp2[2];
  $tmpu3 = $temp2[3];
  $tmpu4 = $temp2[4];
  $tmpu5 = $temp2[5];
  $tmpu6 = $temp2[6];
  $tmpu7 = $temp2[7];
} else {
  $tmpu0 = "Empty";
  $tmpu1 = "Empty";
  $tmpu2 = "Empty";
  $tmpu3 = "Empty";
  $tmpu4 = "Empty";
  $tmpu5 = "Empty";
  $tmpu6 = "Empty";
  $tmpu7 = "Empty";
}
?>

<table border="1" align="center">
  <thead>
    <tr>
      <th colspan="4">Users</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><?php echo $tmpu0; ?></td>
      <td><?php echo $tmpu1; ?></td>
      <td><?php echo $tmpu2; ?></td>
      <td><?php echo $tmpu3; ?></td>
    </tr>
    <tr>
      <td><?php echo $tmpu4; ?></td>
      <td><?php echo $tmpu5; ?></td>
      <td><?php echo $tmpu6; ?></td>
      <td><?php echo $tmpu7; ?></td>
    </tr>          
  </tbody>
</table>

您可以這樣做:

$values = [];
for (var $i=0; $i<8;$i++) {
  $values[$i] = !empty($temp2[$i]) ? $temp2[$i] : 'Empty';
}

然后$values中將始終包含8個元素,並且當DB(?)中沒有值時,將在位置設置空字符串。

使所有值都為'Empty'的數組,然后使用來自DB的值重播它

$temp2 = array_replace(array_fill(0, 8, "Empty"), FetchArray);

暫無
暫無

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

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