目前我所需要的还不完整,如何继续在各自的表中显示SELECT
结果?
如您在上面的示例中所见 - 主题末尾有一张图片 - 第一个动态生成的表格中填充了您的正确数据。您可以通过引用最后一列事件的表的标题看到。
但在其他表中我无法生成循环。
我的方法对吗?
我想做什么:
我在 MySQL 中有两个表,一个名为 Events,另一个名为 Tickets。它们有一个共同的名为 event 的列,其中包含相同的数据。在根据Events表中的行数生成的HTML表中,我想从Tickets表中选择信息并放入各自的HTML表中,其中标题每一个都是 Events 表中名为 event 的列。
<?php
include 'conection.php';
$tickets = $con->prepare("SELECT tickets.chair, tickets.name, tickets.event, events.event FROM tickets INNER JOIN events ON tickets.event = events.event");
$tickets ->execute();
$events = $con->prepare("SELECT event FROM events");
$events ->execute();
?>
<!doctype html>
<html>
<body>
<?php
foreach($events as $evt){
echo " <div class='box[]'>
<table border='1px'>
<thread>
<th> ".$evt['event']." </th>
<tr>
<th>chair</th>
<th>name</th>
<th>event</th>
</tr>
</thread> ";
while ($ingr = $tickets->fetch(PDO::FETCH_ASSOC)){
if(($tck['event']) === ($evt['evento'] )){
echo " <tbody> ";
echo " <tr> ";
echo "<td>" .$ingr['chair']. "</td>";
echo "<td>" .$ingr['name']. "</td>";
echo "<td>" .$ingr['event']. "</td>";
}}}
echo " </tr> ";
echo " </tbody> ";
echo " </table> ";
echo "</div>";
?>
</body>
</html>
Exemple
我还不能显示图像,但这是我现在所做的。
最佳答案
首先,进行一些清理工作。
<thead>
标签是“表头”,而不是“线程”:)- 使用
<th>
在<tr>
之外不管用;将事件名称移动到表格上方的标题(<h2>
或其他内容)中。 - 当您选择字段“事件”时,您使用的是字段名称“事件”。
回答您的主要问题:您只看到一组门票,因为当您为第一个事件搜索合适的门票时,您会浏览整套门票。这样,$tickets
等到想要拿到第二场事件的门票时,已经筋疲力尽了。您可以尝试在选择(使用 $tickets->fetchAll
)后将票证信息放入变量中,然后在循环中使用该变量而不是 $tickets
结果集。
关于php - 从 MySQL 表填充动态 HTML 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48819963/