当前位置: 首页 > 面试题库 >

带有子PHP / MYSQL的类别

楚宇
2023-03-14
问题内容

我的代码中的子类别有些麻烦。

我的期望:

  • 面包店
    • 罐头食品
    • 乳制品
    • 子类别
    • 子类别
    • 子类别
    • 糖果和零食
    • 子类别
    • 子类别
    • 子类别

MYSQL表架构:

分类

id类别名称url类型

$res = mysql_query("SELECT `id`, `name`, `url` FROM `categories` WHERE `type`='category' ORDER BY `name` ASC") or die(mysql_error());
while ($arr = mysql_fetch_array($res))
{
    $faq_categ[$arr['id']]['title'] = $arr['name'];
    $faq_categ[$arr['id']]['url'] = $arr['url'];
}
$res = mysql_query("SELECT `id`, `name`, `category`, `url` FROM `categories` WHERE `type`='subcategory' ORDER BY `name` ASC") or die(mysql_error());
while ($arr = mysql_fetch_array($res)) 
{
    $faq_categ[$arr['category']]['items'][$arr['id']]['name'] = $arr['name'];
    $faq_categ[$arr['category']]['items'][$arr['id']]['url'] = $arr['url'];
}
if (isset($faq_categ)) 
{
    foreach ($faq_categ as $id => $temp) 
    {
        $textbuilder .= '<li><a href="/products/'.$faq_categ[$id]['url'].'/all" title="">".$faq_categ[$id]['title'].'</a>';
        if (array_key_exists("items", $faq_categ[$id])) 
        {
            foreach ($faq_categ[$id]['items'] as $id2 => $temp)
            {
                $textbuilder .= '<small><a href="/products/'.$faq_categ[$id]['url'].'/'.$faq_categ[$id]['items'][$id2]['url'].'" title="">٠".$faq_categ[$id]['items'][$id2]['name'].'</a></small>';
            }
        }
        $textbuilder .= '</li>';
    }
}

结果:http :
//www.picupload.us/images/454result.png

谢谢您的时间,福克斯·桑克(Fox Sank)

编辑:

这是桌子

CREATE TABLE IF NOT EXISTS `categories` (
  `id` int(10) NOT NULL auto_increment,
  `category` int(10) default NULL,
  `name` varchar(255) NOT NULL,
  `url` varchar(255) NOT NULL,
  `type` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;

INSERT INTO `categories` (`id`, `category`, `name`, `url`, `type`) VALUES
(1, 1, 'Bakery', 'brakery', 'category'),
(2, 2, 'Dairy Products', 'dairy-products', 'category'),
(3, 3, 'Sweets and Snacks', 'sweets-and-snacks', 'category'),
(4, 3, 'Corn puffs', 'corn-puffs', 'subcategory'),
(5, 3, 'Biscuits', 'biscuits', 'subcategory'),
(6, 3, 'Cakes', 'cakes', 'subcategory'),
(7, 3, 'Pretzels', 'pretzels', 'subcategory'),
(8, 4, 'Canned food', 'canned-food', 'category'),
(9, 5, 'Meat', 'meat', 'category'),
(10, 5, 'Salami', 'salami', 'subcategory'),
(11, 5, 'Sausages', 'sausages', 'subcategory'),
(12, 5, 'Ham', 'ham', 'subcategory'),
(13, 5, 'Delicatessen', 'delicatessen', 'subcategory'),
(14, 5, 'Frankfurters', 'frankfurters', 'subcategory'),
(15, 5, 'Polony', 'polony', 'subcategory'),
(16, 5, 'Smoked', 'smoked', 'subcategory'),
(17, 5, 'Pate', 'pate', 'subcategory');

问题答案:

我尝试这段代码,它的工作原理..您将尝试一下…

CREATE TABLE IF NOT EXISTS `categorylist` (
 `id` int(5) NOT NULL auto_increment,
`cname` varchar(25) collate utf8_unicode_ci default NULL,
`pid` int(5) NOT NULL,
PRIMARY KEY  (`id`),
KEY `pid` (`pid`)
) ;



INSERT INTO `categorylist` (`id`, `cname`, `pid`) VALUES
(1, 'Entertainment', 0),
(2, 'movies', 1),
(3, 'actor', 2),
(4, 'actress', 2),
(5, 'Drama', 1),
(7, 'sports', 0),
(8, 'comedian', 2),
(9, 'political', 0);



<?php
include "header.php";
 include "dbconn.php";

 $qry="SELECT * FROM categorylist";
 $result=mysql_query($qry);


 $arrayCategories = array();

 while($row = mysql_fetch_assoc($result)){ 
    $arrayCategories[$row['id']] = array("pid" => $row['pid'], "name" =>  $row['cname']);   
  }
//createTree($arrayCategories, 0);

 function createTree($array, $currentParent, $currLevel = 0, $prevLevel = -1) {

foreach ($array as $categoryId => $category) {

    if ($currentParent == $category['pid']) {

        if ($currLevel > $prevLevel) echo " <ul> ";

        if ($currLevel == $prevLevel) echo " </li> ";

        echo '<li id="'.$categoryId.'" onclick=child(this.id);><span>'.$category['name'].'</span>';

        if ($currLevel > $prevLevel) { $prevLevel = $currLevel; }

        $currLevel++;

        createTree ($array, $categoryId, $currLevel, $prevLevel);

        $currLevel--;               
    }

}

if ($currLevel == $prevLevel) echo " </li>  </ul> ";

}   
?>
<div id="content" class="general-style1">
<?php
 if(mysql_num_rows($result)!=0)
 {
?>
<ul>
    <li id="0" class="root"><span>Categories</span>
    <?php createTree($arrayCategories, 0); ?>
</li>
</ul>
<?php
}
?>
</div>


 类似资料:
  • 我正在一个项目,有纯PHP作为后端和MySQL作为数据库。目前,我正在使用ajax来发布和接收来自数据库的数据。但我想使用Websockets的接收部分,使其实时。根据我的搜索和发现,人们引用Node.js、Redis PubSub等来实现它。然而,我没有找到一个关于这个主题的好教程。另外,据我所知,当我在后面运行复杂的PHP算法和MySQL查询时,Nods.js和PHP并不能很好地结合在一起。所

  • 问题内容: 我有一个使用自定义方法连接到xib 的子类。 有没有办法可以在方法中初始化此单元格并仍然重用它?还是我必须使用重用标识符注册类本身? 问题答案: 惯用的NIB流程为: 使用重用标识符注册您的NIB。在Swift 3中 } 在Swift 2中: 定义您的自定义单元格类: class NameInput: UITableViewCell { } 在Interface Builder中创建一

  • 在我开始之前,我请求您的帮助,因为我有非常基本的html和css技能,而且绝对没有php知识! 我想在目录标题和描述下面category.php模板上显示子类别。我在stackoverflow上找到了一个完美工作的代码(我添加了一个div类): 但是,当对不包含任何子类别的类别或子类别的页面收费时,会显示以下文本:“无类别”。 在上面的php代码中,当没有子类别时,是否可以隐藏任何文本?非常感谢

  • 问题内容: 我想在选择 列表(下拉列表)中显示类别,子类别和子子类别,就像WordPress在其管理面板中显示的方式一样。 首先看一下我的数据库表(tb_categories)- 数据库表 我想要以下HTML格式的输出- 输出 两项“无”和“未分类”在代码中进行了硬编码。我 想知道如何 使用选择列表选项以层次结构顺序显示类别及其子类别。 我正在尝试使用自我连接的以下sql查询。这 是- And t

  • 我有两个表格;类别和产品。对于每个类别,我想计算其所有子类别中有多少产品。我已经计算了每个类别中有多少。示例表是: 类别: 产品: 所以我想让我的函数: 它只需要作为选择查询,无需更新数据库。 有什么想法吗? 编辑:SQL小提琴:http://sqlfiddle.com/#!2/1941a/4/0

  • 问题内容: 我似乎找不到我编写的应该发送带有附件的电子邮件的php函数的问题。我已经为此苦苦挣扎了一段时间了。 编辑 问题是邮件的消息与文件混合在一起并作为附件发送。 问题答案: Artefacto让我更加关注输出,并且找到了解决方法: