Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
div PHP PDO之外的内容_Php_Html - Fatal编程技术网

div PHP PDO之外的内容

div PHP PDO之外的内容,php,html,Php,Html,我的子类别的内容不知怎的从div中消失了。 第一个留在那里,但第二个、第三个等从那里出来 有什么解决办法吗 <?php ... $stmt = $dbh->query('SELECT parent.subcat_id, parent.subcat_name, child.subsubcat_name, child.subcat_id, child.cat_id FROM subcategories parent JOIN subsubcategories child ON chil

我的子类别的内容不知怎的从div中消失了。 第一个留在那里,但第二个、第三个等从那里出来

有什么解决办法吗

<?php
...
$stmt = $dbh->query('SELECT parent.subcat_id, parent.subcat_name, child.subsubcat_name, child.subcat_id, child.cat_id FROM subcategories parent  JOIN subsubcategories child ON child.cat_id = parent.cat_id');
$lastcat = 0;
$stmt->execute();
$row2 = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($row2 as $row) {
    if($lastcat != $row['cat_id']){
        $lastcat = $row['cat_id'];
        echo '<div class="panel panel-default">
              <div class="panel-heading">';
        echo $row['subcat_name'];
        echo '</div><div class="panel-body">';
    }
    echo $row['subsubcat_name'];
    echo "</div></div>";
}

?>

这应该重写为:

$close_previous = false;    // special flag
foreach ($row2 as $row) {
    if ($lastcat != $row['cat_id']) {
        $lastcat = $row['cat_id'];

        // check whether you need to close divs from previous block
        if ($close_previous) {
            echo '</div>'; // close .panel-body 
            echo '</div>'; // close .panel-default
        } else {
            // for the first time you don't need 
            // to close divs, so here we skip it
            $close_previous = true;
        }

        echo '<div class="panel panel-default"><div class="panel-heading">';
        echo $row['subcat_name'];
        echo '</div><div class="panel-body">';
    }
    echo $row['subsubcat_name'];
    // add link
    echo '<a href="/test.php?id=' . $row['subcategoryid'] . '">Click</a>';
}

// explicitly close last divs block
echo '</div>'; // close .panel-body 
echo '</div>'; // close .panel-default
$close\u previous=false;//特别旗帜
foreach($row2作为$row){
如果($lastcat!=$row['cat\u id'])){
$lastcat=$row['cat_id'];
//检查是否需要关闭上一个块中的div
如果($close_previous){
回显“”;//关闭。面板主体
回显“”;//关闭。面板默认值
}否则{
//这是你第一次不需要
//要关闭div,我们跳过它
$close_previous=true;
}
回声';
echo$row['subcat_name'];
回声';
}
echo$row['subsubcat_name'];
//添加链接
回声';
}
//显式关闭最后一个divs块
回显“”;//关闭面板主体
回显“”;//关闭。面板默认值

此外,检查生成的html标记以查看错误也是一种很好的做法。

@u\u mulder,很好!我花了一段时间才弄明白OP想要做什么。:-)在这段代码中,如何创建指向test.php的链接?id=$row['subcategory id']?有什么想法吗?没什么特别的,只需添加另一个
echo
(请参阅更新)谢谢,但它本来是要放在身体里的,这就是给予问题。