【问题标题】:Populate HTML Table with fetched SQL Data - Implement Table Class使用获取的 SQL 数据填充 HTML 表 - 实现表类
【发布时间】:2016-01-31 21:31:35
【问题描述】:

我有一个从数据库返回正确结果的查询,我想用结果填充 HTML 表。但是,我只显示“原始”数据,表格没有按照 CSS 类显示。

我的问题:我的表格类标签放置在正确的位置吗?我认为这是某个地方的错误。

  <table class="table-class">
  <thead>
    <tr><th>Car</th><th>Year</th><th>HP</th><th>Seats</th></tr>
  </thead>
<tbody>
<?php
    while($row = $resultsql->fetch_assoc()){
?>

<tr>
  <td>
    <?php echo $row['Car']; ?>
  </td>
  <td>
    <?php echo $row['Year']; ?>
  </td>
  <td>
    <?php echo $row['HP']; ?>
  </td>
  <td>
    <?php echo $row['Seats']; ?>
  </td>
</tr>
  <?php
  }
  ?>

  </tbody>
</table>

我的 CSS:

.table-class  {
  margin: 1em 0;
  width: 100%;
}
@media (min-width: 480px) {
  .table-class {
    width: auto;
  }
}
.table-class  tr {
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}
.table-class  tr td {
  text-align: left;
}
@media (min-width: 480px) {
  .table-class  tr td {
    text-align: center;
  }
}
.table-class  tr td:first-of-type {
  text-align: left;
}
.table-class  th {
  display: none;
}
.table-class  td {
  display: block;
}
.table-class  td:first-child {
  padding-top: .5em;
}
.table-class  td:last-child {
  padding-bottom: .5em;
}
.table-class  td:before {
  content: attr(data-th) ": ";
  font-weight: bold;
  width: 9em;
  display: inline-block;
}
@media (min-width: 480px) {
  .table-class  td:before {
    display: none;
  }
}
.table-class  th:first-of-type {
  text-align: left;
}
.table-class  th, .table-class  td {
  text-align: center;
}
@media (min-width: 480px) {
  .table-class  th, .table-class  td {
    display: table-cell;
    padding: .25em .5em;
  }
  .table-class  th:first-child, .table-class  td:first-child {
    padding-left: 0;
  }
  .table-class  th:last-child, .table-class  td:last-child {
    padding-right: 0;
  }
}

【问题讨论】:

  • 能否在您的问题中添加 CSS 代码?任何包含.table-class 的内容都应包括在内。
  • 我对 PHP 不熟悉,但您不会缺少 &lt;tbody&gt;…&lt;/tbody&gt; 标记吗? &lt;table class="table-class"&gt; 是对的,顺便说一句。
  • 嗯,我想我明白了:while 循环缺少结束 }
  • @PerlDog 没有做到这一点,但谢谢,错过了。 tbody 标签去哪了?
  • @FelixF。这完全改变了事情。我以为您在浏览器中只看到垃圾或 php 代码或其他内容。您是否已将 CSS 包含到您的页面中?没有错别字?而不是&lt;table class=...&gt; 试试&lt;table style="color:blue;"&gt; 看看它是否是蓝色的。

标签: html mysql css


【解决方案1】:

您的代码有两个问题:

(1) 每个&lt;td&gt; 都应该有它们各自的&lt;th&gt; 值作为它们的data-th 属性,而这是缺失的。

<?php
    echo '<tr>';
    echo '<td data-th="Car">' . $row['Car'] . '</td>';
    echo '<td data-th="Year">' . $row['Year'] . '</td>';
    echo '<td data-th="HP">' . $row['HP'] . '</td>';
    echo '<td data-th="Seats">' . $row['Seats'] . '</td>';
    echo '</tr>';
?>

(2) 边框属性应该添加到&lt;td&gt; 标签而不是&lt;tr&gt; 标签。表行不支持此属性。检查这个fiddle

好吧,我对 CSS 代码做了一些修改(基本上将所有媒体查询放在一起),但它演示了如何为表格添加边框并以响应方式使用 &lt;th&gt; 数据。

【讨论】:

  • 就我看到 CSS 工作而言,这很有效,非常感谢。但是,它看起来不像 codepen 示例。我是不是误会了什么,我是否错过了一些使它看起来像的代码?
  • 我什至没有注意到笔(直到现在)。在我看来,您需要支持使用数据属性并使表格边框正常工作,这就是我试图提供的帮助。我认为您可以轻松完成其余的工作,添加一些背景、边框半径、颜色、字体等。小菜一碟……对吧?如果您遇到困难,请告诉我,我会尽力帮助您度过难关。
猜你喜欢
  • 2016-07-03
  • 2018-12-18
  • 1970-01-01
  • 2018-06-02
  • 2014-07-19
  • 2018-04-13
  • 2017-03-18
  • 2023-04-02
  • 1970-01-01
相关资源
最近更新 更多