的index.php:
<?php
$st = $pdo->query("SELECT * FROM post WHERE parent=0 ORDER BY no DESC");
$posts = $st->fetchAll();
for($i = 0;$i < count($posts); $i++){
$st = $pdo->query("SELECT * FROM post WHERE parent={$posts[$i]['no']} ORDER BY no");
$posts[$i]['child'] = $st->fetchAll();
}
require 'd_index.php';
?>
d_design.php:
foreach($posts as $post) { ?>
<div class="post_parent">
<h3>no:<?php echo $post['no'] . "Title:" . $post['title'] ?></h3>
<p><?php echo $post['name'] ?></p>
<p><?php echo nl2br($post['content']) ?></p>
<p><a href="form.php?no=<?php echo $post['no'] ?>">comment</a></p>
<p><small>posted:<?php echo $post['time'] ?></small></p>
<?php foreach($post['child'] as $child) { ?>
<div class="post_child">
<h4>no:<?php echo $child['no'] . "Title:" . $child['title'] ?></h4>
<p><?php echo $child['name'] ?></p>
<p><?php echo nl2br($child['content']) ?></p>
<p><small>posted:<?php echo $child['time'] ?></small></p>
</div>
<?php } ?>
</div>
<?php } ?>
我想嵌套foreach
,但在此代码中,第二个foreach($child)
无法表示。
答案 0 :(得分:0)
您可以通过循环递归来实现此目的。例如:
function loop_posts($posts) {
foreach($posts as $post) {
echo $post->name;
if (isset($post['child'])) {
loop_posts($post['child']);
}
}
}
loop_posts($posts);
&#13;