Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak wyświetlić kategorie, podkategorie, podkategorie na liście wyboru - php/mysql?

Zakładając, że podana tablica jest w $array, możesz tego użyć. Ale jak już powiedziałem, powinieneś wybrać identyfikatory, aby obsługiwać kategorie o tej samej nazwie i używać ich jako wartości opcji w polu wyboru:

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

Zakładając, że masz teraz identyfikatory w swojej tablicy jako „category_id” i „parent_category_id”, możesz tego użyć. "x" przed kluczem w $return ma na celu uniknięcie zmiany kluczy przez php, ponieważ są one numeryczne.

  $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. Zdalne łączenie mysql przez darmowy host

  2. Używanie PHP i RegEx do pobierania wszystkich wartości opcji z kodu źródłowego witryny

  3. Duża tabela w mysql Aktualizacja wierszy na podstawie csv za każdym razem

  4. Jak stworzyć tunel ssh w ruby, a następnie połączyć się z serwerem mysql na zdalnym hoście?

  5. Pobieranie danych z bazy danych JDBC do Jtable