Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да показвам категории, подкатегории, подкатегории в избран списък - php/mysql?

Ако приемем, че дадения ви масив е в $array, можете да използвате това. Но както вече ви казах, трябва да изберете идентификаторите, за да обработвате категории със същото име и да ги използвате като стойности на опции във вашето поле за избор:

  $options = get_options($array);
  echo "<select>";
  foreach($options as $val) {
    echo "<option>".$val."</option>";
  }
  echo "</select>";

  function get_options($array, $parent="", $indent="") {
    $return = array();
    foreach($array as $key => $val) {
      if($val["parent category"] == $parent) {
        $return[] = $indent.$val["category name"];
        $return = array_merge($return, get_options($array, $val["category name"], $indent."&nbsp;&nbsp;&nbsp;"));
      }
    }
    return $return;
  }

Ако приемем, че сега имате идентификаторите във вашия масив като "category_id" и "parent_category_id", можете да използвате това. "x" преди ключа в $return е само за да се избегне това, че php променя вашите ключове, защото те са числови.

  $options = get_options($array);
  echo "<select>";
  foreach($options as $key => $val) {
    echo "<option value='".substr($key,1)."'>".$val."</option>";
  }
  echo "</select>";

  function get_options($array, $parent=0, $indent="") {
    $return = array();
    foreach($array as $key => $val) {
      if($val["parent_category_id"] == $parent) {
        $return["x".$val["category_id"]] = $indent.$val["category name"];
        $return = array_merge($return, get_options($array, $val["category_id"], $indent."&nbsp;&nbsp;&nbsp;"));
      }
    }
    return $return;
  }


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да тълкуваме изхода на MySQL EXPLAIN?

  2. Най-добрият начин да премахнете стойност от полето SET?

  3. уведомете по имейл за датата на изтичане

  4. Разбиране на SUM(NULL) в MySQL

  5. Използвам ли JDBC пул за връзки?