Taha Kirmani
Taha Kirmani

Reputation: 1274

Nested dropdown with dynamic data

I want to create a drop down list which is showing data from two tables. I have a CATEGORY table and a SUB_CATEGORY table. I have written the following code, but its only showing me items from CATEGORY table, and a blank space after each category. I want something like this in the drop down list.

Required Output

I have written the following code, but it's not giving me the required output. Kindly check it.

 <?php
include 'connect.php';

echo "<select name='category'>";

$select_query=          'Select * from category';
$select_query_run =     mysql_query($select_query);

  $sub_category_query="Select * from sub_categories where id='".$select_query_array['category_id']."'";

      $sub_category_query="Select * from sub_categories ";
      $sub_query_run=         mysql_query($sub_category_query);


while ($select_query_array=   mysql_fetch_array($select_query_run) ) {

     echo "<optgroup label='".$select_query_array['name']."' >".

              //    $sub_category_query="Select * from sub_categories where id='".$select_query_array['category_id']."'";

                    $sub_category_query="Select * from sub_categories";

                $sub_query_run=         mysql_query($sub_category_query);


     while   ($sub_query_run1=   mysql_fetch_array($sub_query_run) ) {
          echo "<option value='".$sub_query_run1['sub_category_id'] . "' >" .
               htmlspecialchars($sub_query_run1['sub_category_name']) . "</option>";
     }
     echo "</optgroup>";
 }
 echo "</br>";

 $selectTag= "</br><input type='submit' value='Insert Product'  /></select></form>";

 echo "</div></div>";

 echo $selectTag;





?>

Upvotes: 0

Views: 2181

Answers (1)

nickle
nickle

Reputation: 5216

This will work only if u maintain forgien key relation between two tables.

echo "<select name='category'>";

$select_query=          'Select * from category';
$select_query_run =     mysql_query($select_query);

while ($select_query_array=   mysql_fetch_array($select_query_run) ) {

     echo "<optgroup label='".$select_query_array['category_id']."' >".
          htmlspecialchars($select_query_array["name"]).

     $sub_category_query="Select * from sub_categories where id='".$select_query_array['category_id']."'";

     $sub_query_run=         mysql_query($sub_category_query);

     while   ($sub_query_run1=   mysql_fetch_array($select_query_run) ) {
          echo "<option value='".$sub_query_run1['sub_category_id'] . "' >" .
               htmlspecialchars($sub_query_run1['sub_category_name']) . "</option>";
     }
     echo "</optgroup>";
 }
 echo "</br>";

 $selectTag= "</br><input type='submit' value='Insert Product'  /></select></form>";

 echo "</div></div>";

 echo $selectTag;

Upvotes: 1

Related Questions