Php 在sql中显示类别
我只想为类别创建一个表。我不想为父子关系创建其他表。所有类别都应存储在一个表中。 添加/更新/删除类别。类别名称应唯一。如果删除了任何父类别,则还应删除所有子类别(如果存在)。 如果已经创建了类别,则新类别可以是任何类别或主类别的子类别。如果创建了任何类别,则表单应具有将该类别作为父类别的选项。例如:Php 在sql中显示类别,php,mysql,Php,Mysql,我只想为类别创建一个表。我不想为父子关系创建其他表。所有类别都应存储在一个表中。 添加/更新/删除类别。类别名称应唯一。如果删除了任何父类别,则还应删除所有子类别(如果存在)。 如果已经创建了类别,则新类别可以是任何类别或主类别的子类别。如果创建了任何类别,则表单应具有将该类别作为父类别的选项。例如: -> House -> Flat -> 2BHK Flat -> 2BHK Flat 1200 sq ft
-> House
-> Flat
-> 2BHK Flat
-> 2BHK Flat 1200 sq ft
-> 2BHK Flat 1200 sq ft on 4th floor
-> 2BHK Flat 1200 sq ft on 10th floor
-> 2BHK Flat 1200 sq ft on 10th floor with two balconies
-> 2BHK Flat 1200 sq ft on 10th floor with 5 balconies
最后,我想以表格格式显示所有类别,显示父类别(如果存在)
范例
ID: Category Parent Category
=======================================================
1. Flat ----
2. 2BHK Flat Flat
3. 2BHK Flat 1200 sq ft 2BHK Flat
此类类别的查询是什么?准备数组格式的类别数据,并使用以下方法进行插入
//Prepare a category tree
public function categoryTree()
{
$categoriesData = [];
$arr = [
"House" => [
"Flat" => [
"2BHK Flat" => [
"2BHK Flat 1200 sq ft" => [
"2BHK Flat 1200 sq ft on 4th floor" => [],
"2BHK Flat 1200 sq ft on 10th floor" => [
"2BHK Flat 1200 sq ft on 10th floor with two balconies" => [],
"2BHK Flat 1200 sq ft on 10th floor with 5 balconies" => []
]
]
]
]
]
];
self::displayCategories($arr, $categoriesData);
}
//insertion of categories in db
public static function displayCategories($arr, $categoriesData)
{
foreach($arr as $parentCat => $childCat) {
$categoriesData[] = "('{$parentCat}', '".implode(',', array_keys($childCat))."')";
if(!empty($childCat)) {
self::displayCategories($childCat, $categoriesData);
}
}
INSERT INTO `table_name` (`Parent_Category`,`Category`) VALUES .implode(',', $categoriesData);
}
//Deletion of categories
public static function categoryDeletion($parentCategory)
{
DELETE FROM `table_name` WHERE `Parent_Category` = '{$parentCategory}';
}
您希望使用分层查询。根据您使用的数据库(mysql、oracle),语法会发生变化。我想使用mysql。您能帮我一下吗?听起来很像“有人能帮我做作业吗”…?您能告诉我们您迄今为止做了哪些尝试,并解释这是如何未能实现目标的吗?