我想设计一个包含几个列的表,但是这些列不是我的问题。 问题是行。 这些是mysql表:
我想基于str表的计数来迭代表,而行基于包含相同str_id的substr的计数来进行迭代。 每个str都有一张桌子。 在每个表的行中,都有指定str的substr。 希望您能理解我的意思。
这是我的html和PHP代码:
<?foreach ($stra as $str) { ?>
<div>
<table id="homeTable">
<thead>
<th>str</th>
</thead>
<tr>
<td>
**********
</td>
</tr>
</table>
</div>
**********我想在这里将substrs动态地迭代到每一行,直到它们的str_id相同为止,然后,新表将基于新主题和新substrs进行迭代****** ****
这是我的SQL代码:
$db = Db::getInstance();
$stra= $db->query("SELECT * FROM str-table");
$substr= $db->query("SELECT * FROM str-table");
我该怎么办?
答案 0 :(得分:0)
我认为,您想要这样的东西:
<?php
$db = Db::getInstance();
$stra= $db->query("SELECT * FROM `str-table`");
?>
<?php while ($str = $stra->fetch_array()) : ?>
<div>
<table id="homeTable">
<thead>
<th><?php echo $str['str']; ?></th>
</thead>
<?php $substr = $db->query("SELECT * FROM `substr-table` WHERE str_id = ".$str['str_id']); ?>
<?php while ($sub = $substr->fetch_array()) : ?>
<tr>
<td>
<?php echo $sub['substr']; ?>
</td>
</tr>
<?php endwhile; ?>
</table>
</div>
<?php endwhile; ?>
第一个SQL查询从str表中获取所有类别。 然后foreach循环遍历它们,并为每个循环打印一张表。
在表内部,第二个SQL查询从substr表中获取外循环中当前“ str”类别的所有子类别。然后,它为每个substr类别打印一个表格行和一个表格单元格。
让我知道这是否是您所需要的。 :)
更新并分离了模型-视图-控制器
型号:
<?php
$db = Db::getInstance();
$categories = array();
$stra= $db->query("SELECT * FROM `str-table`");
while ($str = $stra->fetch_assoc()) {
$substr = $db->query("SELECT * FROM `substr-table` WHERE str_id = ".$str['str_id']);
$subcategories = array();
while ($sub = $substr->fetch_assoc()) {
$subcategories[] = $sub;
}
$categories[] = array_merge($str, array('substrs' => $subcategories));
}
return $categories;
?>
与上述相同,第一个SQL查询从str-table获取类别,第二个SQL查询从substr-table获取每一行的相应子类别。然后将类别及其子类别添加到多维数组,然后将其返回给调用代码。
控制器可以从模型中获取类别数组,并将其传递给视图以进行显示。
查看:
<?php foreach ($categories as $category) : ?>
<div>
<table id="homeTable">
<thead>
<th><?php echo $category['str']; ?></th>
</thead>
<?php foreach ($category['substrs'] as $subcategory) : ?>
<tr>
<td>
<?php echo $subcategory['substr']; ?>
</td>
</tr>
<?php endforeach; ?>
</table>
</div>
<?php endforeach; ?>