首页 > 解决方案 > 当 table1.id=table2.id 时,我如何打印一件事,而另一件事是“if else”?

问题描述

我有一个菜单,其中一些页面有打开下拉菜单的子页面。

我有两个 SQL 表:

'pages' => page_id, page_name; 'subpages' => subpage_id, page_id, page_name;

当我通过表单插入子页面时,子页面将获得与所选父页面相同的 page_id。

问题是,所有菜单元素都显示下拉箭头——即使是那些没有子页面的元素。

只有当页面有子页面时,我才能打印一些东西?这就是我要的:

if pages.page_id=subpages.page_id  
print 
  <button class="dropdown-btn">
    <?php echo $page['page_name']; ?>
    <i class="fa fa-caret-down"></i>
  </button>

else print 
  <a href="#"><?php echo $page['page_name']; ?></a>

索引.php:

<?php foreach ($pages as $page) { ?>

    <button class="dropdown-btn">
      <?php echo $page['page_name']; ?>
      <i class="fa fa-caret-down"></i>
    </button>

    <div class="dropdown-container">
<?php foreach ($subpages as $subpage) { 
  if($subpage['page_id'] == $page['page_id']) {
?>
  <a href="../subpage.php?id=<?php echo $subpage['subpage_id']; ?>">
    <?php echo $subpage['subpage_name']; ?>
  </a>
<?php } } ?>
    </div>

<?php } ?>

任何帮助表示赞赏!

标签: phphtmlmysql

解决方案


首先,我会Subpage像这样改变课程:

class Subpage {
    public function fetch_all(){
        global $pdo;

        $query = $pdo->prepare("SELECT * FROM subpages");
        $query->execute();

        return $query->fetchAll();
    }

    // Static function: Fetch all subpages of single page
    public static function fetch_all_page($page_id){
        global $pdo;

        $query = $pdo->prepare("SELECT * FROM subpages WHERE page_id = ?");
        $query->bindValue(1, $page_id);
        $query->execute();

        return $query->fetchAll();
    }

    public function fetch_data($subpage_id) {
        global $pdo;

        $query = $pdo->prepare("SELECT * FROM subpages WHERE subpage_id =         
?");
        $query->bindValue(1, $subpage_id);
        $query->execute();

        return $query->fetch();
    }
} 

你的 index.php 将变成:

<?php foreach ($pages as $page) { ?>

    <?php $subpages = Subpage::fetch_all_page($page['page_id']); ?>

    <button class="dropdown-btn">
        <?php echo $page['page_name']; ?>
        <?php if (count($subpages)): ?>
            <i class="fa fa-caret-down"></i>
        <?php endif; ?>
    </button>

    <div class="dropdown-container">
        <?php foreach ($subpages as $subpage): ?>
            <a href="../subpage.php?id=<?php echo $subpage['subpage_id']; ?>">
                <?php echo $subpage['subpage_name']; ?>
            </a>
        <?php endforeach; ?>
    </div>

<?php } ?>

推荐阅读