Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để hiển thị danh mục, danh mục con, danh mục phụ trong danh sách chọn - php / mysql?

Giả sử mảng đã cho của bạn nằm trong mảng $, bạn có thể sử dụng mảng này. Nhưng như tôi đã nói với bạn, bạn nên chọn id để xử lý các danh mục có cùng tên và sử dụng chúng làm giá trị tùy chọn trong hộp chọn của bạn:

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

Giả sử bây giờ bạn có id trong mảng của mình là "category_id" và "parent_category_id", bạn có thể sử dụng id này. Dấu "x" trước khóa trong $ return chỉ để tránh việc php thay đổi khóa của bạn, vì chúng là số.

  $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. Phân biệt so với Nhóm theo

  2. MySQL thêm cột nếu không tồn tại

  3. Cách hoạt động của hàm LOWER () trong MySQL

  4. CẢNH BÁO:Không nên thiết lập kết nối SSL mà không có xác minh danh tính của máy chủ

  5. Bảng thay đổi MySQL và chuyển đổi dữ liệu từ văn bản sang ngày giờ