gpt4 book ai didi

php - 子类别不显示在选择菜单中

转载 作者:行者123 更新时间:2023-11-29 11:19:45 25 4
gpt4 key购买 nike

我一直在弄乱子类别,并创建了一个数据库新类别用于测试目的。

Table newcategories

category_id (int) AUTO
name (varchar) NOT NULL
parent (int) NULL
category_desc (text) NULL
sort_order (int) NOT NULL

我在数据库中输入了一些类别和子类别,但在尝试在选择菜单中显示主类别以及相应的子类别时遇到了问题。

<?php
// // // query database to return all existing main categories
$selectMainCat='SELECT *
FROM newcategories
WHERE parent is NULL
ORDER BY sort_order ASC';

$smc=$conn->query($selectMainCat);
while($rowsmc = $smc->fetch_assoc()) {
$parent_id = $rowsmc['category_id'];
?>

<optgroup label="<?php echo "{$rowsmc['name']}";?>">
<option value="<?php echo"{$rowsmc['category_id']}"; ?>"
<?php
if (isset($catID) && $catID=="{$rowsmc['category_id']}")
echo "selected";
?>
>
<?php
echo "{$rowsmc['name']}";?></option>
<?php
// // // query database to return all sub categories
$selectSubCat='SELECT *
FROM newcategories
WHERE parent = "$parent_id" ';

$ssc=$conn->query($selectSubCat);
while($rowssc = $ssc->fetch_assoc()){
?>
<option value="<?php echo"{$rowssc['category_id']}"; ?>"
<?php
if (isset($catID) && $catID=="{$rowssc['category_id']}")
echo "selected";
?>
>
<?php
echo "{$rowssc['name']}";?></option>
<?php
}
?>
</optgroup>
<?php
}
?>

下面是我输入数据库的内容

category_id     name        parent  category_desc   sort_order
1 Fruits NULL NULL 1
2 Vegetables NULL NULL 2
3 Apple 1 NULL 1
4 Arugula 2 NULL 1
5 Cabbage 2 NULL 2
6 Honeycrisp 3 NULL 1
7 Braeburn 3 NULL 2

HTML 输出

<select class="form-control m-b" name="catID" id="catID">
<option value="" disabled selected> Select Main Category</option>
<option value="" disabled></option>
<optgroup label="Fruits">
<option value="1" >Fruits</option>
</optgroup>
<optgroup label="Vegetables">
<option value="2" >Vegetables</option>
</optgroup>
</select>

最佳答案

您遇到的问题是,由于您使用的是non-interpolating quotes,所以该值没有被正确插值。 。可以通过使用占位符值正确执行查询来解决此问题:

$ssc = $conn->prepare('SELECT * FROM newcategories WHERE parent=?');
$ssc->bind_param('i', $parent_id);
$result = $ssc->execute();

while ($rowssc = $result->fetch_assoc()) {
...
}

将任何类型的数据直接放入查询中都是极其危险的,尤其是通过 $_GET 直接来自用户的数据。 , $_POST$_REQUEST 。偶$_COOKIE$_SESSION可能会很麻烦,因为这些可能包含用户先前提供的值,或者用户对其有一定程度的控制权。

关于php - 子类别不显示在选择菜单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39129826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com