Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.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
在多级类别应用程序php mysql pdo oop中显示特定类别的产品_Php_Mysql_Pdo_Product_Categories - Fatal编程技术网

在多级类别应用程序php mysql pdo oop中显示特定类别的产品

在多级类别应用程序php mysql pdo oop中显示特定类别的产品,php,mysql,pdo,product,categories,Php,Mysql,Pdo,Product,Categories,我正在创建一个非常简单的应用程序,但由于我对代码非常生疏,而且是OOP新手,我似乎不理解创建一个只显示与该类别相关的产品的简单链接的逻辑。该应用程序不是电子商务,它只是从数据库中提取数据,在用户单击链接时显示数据,并将数据写入产品和类别表中。我正在尝试的界面是当用户单击相应类别时显示链接产品的一种方式。唯一的问题是类别是多层次的,在这里我完全卡住了,不知道如何传递变量,或者拉取适当的select语句。我的问题是,我一直在浏览并尝试查找ate示例,这些示例演示了如何显示产品列表,但没有一个是针对多

我正在创建一个非常简单的应用程序,但由于我对代码非常生疏,而且是OOP新手,我似乎不理解创建一个只显示与该类别相关的产品的简单链接的逻辑。该应用程序不是电子商务,它只是从数据库中提取数据,在用户单击链接时显示数据,并将数据写入产品和类别表中。我正在尝试的界面是当用户单击相应类别时显示链接产品的一种方式。唯一的问题是类别是多层次的,在这里我完全卡住了,不知道如何传递变量,或者拉取适当的select语句。我的问题是,我一直在浏览并尝试查找ate示例,这些示例演示了如何显示产品列表,但没有一个是针对多级子类别的。我需要添加一个url,其中链接是与该产品关联的类别。我有两张简单的桌子和一个动态菜单

--
-- Table structure for table `products1`
--

CREATE TABLE IF NOT EXISTS `products1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL,
`description` text NOT NULL,
`price` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;

--
-- Table structure for table `menu`
--

CREATE TABLE IF NOT EXISTS `menu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 NOT NULL,
`parent_id` int(11) NOT NULL,
 PRIMARY KEY (`id`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=136 ;
“表格”菜单只是将父类别与其兄弟类别关联起来的一种方式。 由于我有超过103个类别,它们都通过它们的父id相互关联,我不知道如何编写逻辑来在菜单中显示活动类别。 我的逻辑有缺陷。无法确定需要进行哪种比较,需要执行hat代码来传递正确的类别id,具体取决于活动Li标记的位置

这是该表生成的菜单

        <?php 
        $items = $rows;
        $id = '';
        echo '<ul class="dl-menu">';
        foreach($items as $item){
            if($item['parent_id'] == 0) {
                echo '<li><a href="?category=<?php echo $category->id?>">'.     $item['name'] . '</a>';
                $id = $item['id'];
                sub($items, $id);
                echo '</li>';
            }
        }
        echo "</ul>";
        function sub($items, $id){
            echo '<ul class="dl-submenu">';
            foreach($items as $item){
            if($item['parent_id'] == $id) {
                echo '<li><a href="?category=<?php echo $category->id?>">'. $item['name'] . '</a>';
        //      $id = $item['id'];
                sub($items, $item['id']);
                echo '</li>';
                }
            }
            echo '</ul>';
        }
?>


我的问题是回显类别id的代码行。我不知道需要输出哪个脚本,我指的是需要比较以获得该结果的逻辑。

您当前输出类别id的代码行如下所示:

echo '<li><a href="?category=<?php echo $category->id?>">' . $item['name'] . '</a>';
echo'
  • ';
  • 由于这些都是PHP中的eachos,您不需要echo中的标记,因此将这些行更改为:

    echo '<li><a href="?category=' . $category->id . '">'. $item['name'] . '</a>';
    
    echo'
  • ';

  • 如果我正确理解了问题,应该可以解决您的问题。

    好吧,问题是提取类别的脚本,这就是我需要的。。。而且似乎不知道该怎么做。谢谢你的语法检查。我所要做的,是比较它们所属的类别和产品。实际的代码,因为我不知道如何编写它。我已经学习和阅读好几天了@gabe3886