这是我的类别表。基本上有一个类别和子类别。 ParentCategoryId是该类别下的子类别。例如,我有三个ParentCategoryID 1,这意味着它是category_id 1下的一个子类别,因此isSubCategory设置为1表示是,它是一个子类别,0表示它是一个类别的#s;为什么parentCateogryID对于前四个数据为空,因为它们是类别
我已经有了一个Add Category功能,现在我想要一个Add Subcategory函数,但是对于我将如何进行常规的php查询非常困惑。
<form method="POST">
<?php
if(isset($_POST['submit'])){
include 'testdb.php';
$addcategory = $_POST['categoryname'];
$parentcategory = $_POST['parentcategoryID'];
$query = mysqli_query($con, "SELECT categoryname FROM category WHERE categoryname = '.$addcategory.'");
$insert = mysqli_query($con, "INSERT INTO category (`categoryname`,`ParentCategoryID`,`isSubCategory`) VALUES ('$addcategory','$parentcategory','1')");
if(!$insert){
echo mysqli_error($con);
}
else{
echo 'Category successfully added!';
}
}
?>
答案 0 :(得分:1)
外键在同一个表中不是自引用的。如果您的子类别位于不同的表格中(我建议 - 上面的解决方案非常混乱),那么外键会使插入函数更容易。
无论如何,如果你只是想添加一个新的子类别;
$addcategory = $_POST['categoryname'];
$parentcategory = $_POST['parentcategory'];
$insert = mysqli_query($con,
"INSERT INTO category
(`categoryname`,
`ParentCategoryID`,
`isSubCategory`)
VALUES
('$addcategory',
'$parentcategory'
'1')");
另外,考虑使用准备好的语句..或至少运行mysqli_escape_string而不是你正在接受的POST参数...留下它们,因为它们允许我插入像&#39 ;; DROP TABLE用户;。