sql >> Database teknologi >  >> RDS >> Mysql

Hvordan viser man kategorier, underkategorier, underkategorier i udvalgte liste - php/mysql?

Forudsat at dit givne array er i $array, kan du bruge dette. Men som jeg allerede har fortalt dig, skal du vælge id'erne for at håndtere kategorier med samme navn og bruge dem som indstillingsværdier i dit valgfelt:

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

Forudsat at du nu har id'erne i dit array som "category_id" og "parent_category_id" kan du bruge dette. "X" før nøglen i $return er bare for at undgå, at php ændrer dine nøgler, fordi de er numeriske.

  $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. Aggregeret forespørgsel uden GROUP BY

  2. Rutinemæssige anbefalinger til sikkerhedskopiering af indhold

  3. Sådan genereres indsæt erklæringer fra Excel-data og indlæses i SQL Server-tabel - SQL Server / TSQL vejledning del 103

  4. Forskellige måder at bruge SQL CONVERT date-funktionen på