sql >> Database >  >> RDS >> Mysql

Hoe kan ik categorieën, subcategorieën, sub-subcategorieën in de geselecteerde lijst weergeven - php/mysql?

Ervan uitgaande dat uw gegeven array zich in $array bevindt, kunt u dit gebruiken. Maar zoals ik je al zei, moet je de id's selecteren om categorieën met dezelfde naam te behandelen en ze als optiewaarden in je selectbox te gebruiken:

  $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;
  }

Ervan uitgaande dat je nu de id's in je array hebt als "category_id" en "parent_category_id", kun je dit gebruiken. De "x" voor de sleutel in $return is alleen om te voorkomen dat php je sleutels verandert, omdat ze numeriek zijn.

  $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. Identiteitstoename springt in SQL Server-database

  2. Hoe een MySQL char(n)-kolom toewijzen aan een instantievariabele met behulp van een JPA/Hibernate-annotatie?

  3. Hoe bootstrap css-tabellen te gebruiken om gegevens uit MySQL-tabellen weer te geven?

  4. MariaDB - kan niet inloggen als root