正如我试图在标题中描述的,我从一个MYSQL数据库中选择行的问题取决于同一页上另一个下拉列表的ID。我只用了2个月左右的时间,现在需要帮助。PHP MYSQL - 下拉选择取决于前一个下拉列表
我有一个类别表,下面的标题。
| id |名称| PARENT_ID |
还有父类别,其parent_id为0。父类别的子类别为其parent_id,最大深度为1个子类别。例如:
软件开发与ID = 18和PARENT_ID = 0 PHP开发者一个父类是具有ID = 30和PARENT_ID = 18
子类别我有一个下拉列表,在那里我可以选择我工作的类别如下:
$p_query = "SELECT * FROM categories WHERE parent_id = 0 ORDER by id ASC";
$p_result = mysqli_query($con, $p_query) or die(mysqli_error($con));
$categories ='';
while($p_row = mysqli_fetch_assoc($p_result))
{
$categories .='<option class="option" value="p::'.$p_row['id'].'">' .$p_row['category_name'].'</option>';
}
<select name="categories[]" class="categories form-control" id="categories" style="width:100%" multiple>
<?php echo $categories;?>
</select>
这是行得通的,没问题。但是,当我试图获得第二个下拉列表来显示可能的类别,他们的parent_id作为任何选定的父类别的ID时,我会检索一个下拉列表,并显示'找不到搜索结果'。下面的代码是我正在使用的:
$subcategories ='';
while($p_row = mysqli_fetch_assoc($p_result))
{
$c_query = "SELECT * FROM categories WHERE parent_id = ".$categories['id']." ORDER by id ASC";
$c_result = mysqli_query($con, $c_query) or die(mysqli_error($con));
while($c_row = mysqli_fetch_assoc($c_result))
{
$subcategories .='<option class="option" value="c::'.$c_row['id'].'">' .$c_row['category_name'].'</option>';
}
}
<select name="subcategories[]" class="categories form-control" id="subcategories" style="width:100%" multiple>
<?php echo $subcategories ?>
</select>
有什么,我失踪了?作为PHP和MYSQL的初学者,我会非常感谢任何帮助或建议。
这个问题可能已经解决过。 – Strawberry
'var_dump()','print_r()'和'echo'是你的朋友。在各个地方进行调试。所以首先检查你的'$ p_result',接下来的'$ c_query'等...... – user1801810