タイトルに記述しようとしたので、同じページの別のドロップダウンリストのIDに応じてMYSQLデータベースから行を選択する際に問題があります。私はmysqlとphpを2ヶ月間しか使用していませんでした。PHP MYSQL - 前のドロップダウンに依存する選択をドロップ
私は以下のヘッダーを持つカテゴリのテーブルを持っています。
| id |名前| parent_id |
parent_idが0の親カテゴリがあります。また、parent_idとして親の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>
これは問題なく動作します。しかし、2番目のドロップダウンリストを取得して、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