2016-08-22 10 views
1

ここに自分のデータベースフィールドがあります。ここでドロップダウンで選択した値を繰り返さないでください。

cat_id | cat_name | parent | parent_id 
----------------------------------------------- 
    1  | Electronics| --  | 0 

    2  | Apparels |--   |0 

    3  | Mens  | Apparels |2 

は今、私は管理者は、彼が編集したときに、彼ならばそのように選択されたカテゴリ名がドロップダウンしても、他のオプションに示すべきである、彼ができるカテゴリを編集したい場合は、いくつかの基本的なCRUD操作を開発しています、私のデータベース構造であります彼ができるように変更したい。私は繰り返しここにあなたを示しているカテゴリ名を取得しています。

Category Name: Mens 
Dropdown Menu: --Root Level-- 
       Apparels(Selected Value) 
       Electronics 
       Apparels 
       --Mens 

これだった設計構造:

は、ここに私のフィールドです。私のPHPコードは次のとおりです。$ categoryList = fetchCategoryTree();を呼び出しているときは、私のPHPコードは

<tr> 
       <td><h4>Update category</h4></td> 
      </tr> 
      <tr> 
       <td>Name:</td> 
       <td><?php $result=mysql_query("SELECT * from category Where cat_id='$id'"); 
          $row=mysql_fetch_array($result)?><input type="text" value="<?php echo $row["cat_name"]; ?>" /></td> 
      </tr> 
      <tr> 
       <?php 
         function fetchCategoryTree($parent = 0, $spacing = '', $user_tree_array = '') { 

         if (!is_array($user_tree_array)) 
          $user_tree_array = array(); 

         $sql = "SELECT `cat_id`, `cat_name`, `parent_id` FROM `category` WHERE 1 AND `parent_id` = $parent ORDER BY cat_id ASC"; 
         $query = mysql_query($sql); 
         if (mysql_num_rows($query) > 0) { 
          while ($row = mysql_fetch_object($query)) { 
          $user_tree_array[] = array("id" => $row->cat_id, "name" => $spacing . $row->cat_name); 
          $user_tree_array = fetchCategoryTree($row->cat_id, $spacing . '&nbsp;->', $user_tree_array); 
          } 
         } 
         return $user_tree_array; 
         }?> 

         <?php 
         $categoryList = fetchCategoryTree(); 
         ?> 
       <td> Category:</td><td><select name="parentcat" id="parentcat" onchange="getText(this)"> 
       <option value="Root">--Root Level--</option> 
       <option selected value="<?php echo $row["parent_id"];?>"><?php echo $row["parent"];?></option> 
        <?php foreach($categoryList as $cl) { 
         ?> 

        <option value="<?php echo $cl["id"] ?>"><?php echo $cl["name"]; ?></option> 
        <?php } ?> 
        </select> 
        <input type="hidden" id="catnamehidden" name="hdnCatname"> 

答えて

1

です。これは、親カテゴリーIDを渡さないため、すべてのカテゴリーが親0から始まっているため、繰り返し値を取得しています。このような関数で親IDを渡してみてください。

$categoryList = fetchCategoryTree($row["parent_id"],$spacing = '', $user_tree_array = ''); 
関連する問題