首页 > 解决方案 > 为特定类别生成 URL

问题描述

我需要根据产品类别修改 URL。所以在数据库示例中:类别的名称是NIKE,子类别的名称是AIR-MAX这样的 URL site.com/en/products/nike/air-max/product.php?id=1。所以我需要生成/nike/air-max/如果在数据库列category中有/nike/air-max/其他如果在数据库列是另一个类别示例:reebok显示/reebok/url。我认为这可以用echo function.

class Main {
        public function get_all_posts(){
        global $pdo;

        $query = $pdo->prepare('SELECT * FROM post WHERE categoryProduct="Nike Air-Max" ORDER BY post_id DESC');
        $query->execute();

        return $query->fetchAll(PDO::FETCH_ASSOC);
    }

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

       $query = $pdo->prepare('SELECT * FROM post where post_id = ? order by post_date desc');
        $query->BindValue(1,$pid);
        $query->execute();

        return $query->fetch();
    }
}

我需要echo "/nike/air-max/";是否有价值或categoryProduct必须回显,以便我可以在索引页面上回显Nike Air-MaxcategoryProductreebook/reebook/<a href="/en/product/<?php echo $post['URL']; ?>/product.php?id=<?php echo $post['post_id']; ?>">See product information</a>

标签: phpsqlpdo

解决方案


首先,您必须在BD中将类别与子类别分开;所以你必须创建两个单独的表:一个用于类别,另一个包含子类别名称和类别引用。

之后,您可以简单地检索所有类别,然后 foreach 类别检索子类别并显示名称:

foreach ($result as $category) {
   foreach (retriveAllProdsFromCat($category) as $subCategory) {
       echo "<a href='site.com/en/products/$catgory/$subCategory/product.php?id=1'>$subCategory</a>";
   }
}

这样,您必须为每个类别和每个子类别创建一个目录;如果这是最好的解决方案,那么我想知道;但这是做复合链接的正确方法

function retriveAllProdsFromCat($category) {
    global $pdo;
    $query = $pdo->prepare('SELECT name FROM subcategory WHERE category=? ORDER BY post_id DESC');
    $query->bind_param('d', $category);
    $query->execute();

    return $query->fetchAll(PDO::FETCH_ASSOC);
}

推荐阅读