PHP와 MySQL로 트리 메뉴를 만드는 법

작가: Eric Farmer
창조 날짜: 8 3 월 2021
업데이트 날짜: 17 할 수있다 2024
Anonim
jquery 트리메뉴 mysql, javascript 트리메뉴 mysql, mysql 연동, tree menu mysql db... EXP 다목적 트리메뉴...
동영상: jquery 트리메뉴 mysql, javascript 트리메뉴 mysql, mysql 연동, tree menu mysql db... EXP 다목적 트리메뉴...

콘텐츠

트리 메뉴는 요소 목록을 시각적으로 표현한 것으로, "상위 노드"라고하는 일부 요소 나 범주를 확장하여 하위 노드 (하위 노드)라고하는 하위 요소를 표시 할 수 있습니다. MySQL 데이터베이스에서 정보를 얻고 PHP를 사용하여 웹 페이지에 트리 메뉴를 만들 수 있습니다. MySQL 테이블에는 부모 노드와 자식 노드 및 이들 간의 관계를 식별하는 특정 형식이 있어야합니다. 테이블의 각 레코드는 노드가되며 다중 레벨 계층을 만들 수 있습니다.


지침

트리 메뉴는 계층 구조로 데이터를 구성하는 역할을합니다. (Photos.com/Photos.com/Getty Images)
  1. MySQL 데이터베이스에 로그인합니다. 노드 ID, 설명 및 상위 노드 ID의 세 가지 필드가있는 테이블을 만듭니다. 표에 정보를 입력하십시오. 각 노드 ID는 고유해야합니다. 최상위 노드는 상위 노드 ID가 0이고 하위 노드는 최 상위 노드 수를 나타냅니다.

  2. 트리 메뉴를 만들 HTML 파일을 엽니 다. 트리를 만들려는 위치에 커서를 삽입하고 다음 코드를 입력하십시오.

    $db = mysql_connect ($nomehost, $usuario, $senha); mysql_select_db ($bancodados);

    Estas linhas apenas configuram a conexão ao seu banco de dados MySQL. Altere as variáveis PHP pelos valores apropriados para a sua base.

  3. Digite o seguinte código:

    $result = mysql_query('SELECT * FROM nome_tabela') or die(erro_mysql());

    Esta linha faz uma chamada ao banco de dados MySQL, obtém da tabela a informação da estrutura do menu em árvore e a salva em uma variável PHP.

  4. Digite o seguinte código:

    $menu = Array(); while ($m = mysql_fetch_array($result)) { $menu[] = Array('id'=>$m['id'], 'texto'=>$m['texto'], 'pai'=>$m['idpai']); }


    A primeira linha cria uma variável PHP e a inicializa como um array. O laço 'while' percorre os registros da variável $result e os formata para serem usados por uma função PHP.

  5. Digite o seguinte código:

    function menuarvore($linhas,$idpai=0) { $result = '

      '; foreach ($linhas as $linha) {

      A primeira linha cria uma nova função 'menuarvore' que você usará para montar a sua árvore, e usa um ou dois parâmetros. No primeiro lugar, ela toma a informação de um array PHP. O segundo parâmetro é um número inteiro que contém informação sobre os nodos pai na árvore. Se você não indicar um, a função criará a sua própria variável e inicializará o valor em zero.

    • Digite o seguinte código:

      if ($linha['idpai'] == $idpai) { $result.= '

    • {$linha[texto]}'; foreach ($linha as $r) { if ($r['idpai'] == $r['id']) $children = true; else $children = false; } if ($children = true) $result.= treemenu($linhas,$linha['id']) . '
    • '; }

      Estas linhas usam sentenças 'if' e laços para percorrer a informação da variável PHP que contém a estrutura do menu em árvore. Se a linha for um pai com um valor ID zero, a função criará um nodo pai. Se a linha for um filho, a função buscará o ID do nodo pai e criará um nodo filho conectado a ele. A função 'treemenu' é chamada recursivamente para verificar cada linha da variável de array PHP.


    • Digite o seguinte código:

      } $result .= '

    '; return $result; }

    Estas linhas fecham o laço 'for' que percorre todas as colunas dos resultados MySQL, adicionam código HTML e retornam a árvore da função. A última linha fecha o bloco de funções 'treemenu'.

  6. Digite o seguinte código:

    echo menuarvore($menu);

    첫 번째 행은 "menuarvore"함수를 호출하고 정보를 MySQL 데이터베이스에 전달한 다음 웹 페이지에 트리를 표시합니다. 두 번째 줄은 PHP 코드 블록을 닫습니다.

어떻게

  • 필요한 경우 MySQL 테이블에 필드를 추가하십시오. 예를 들어 각 노드의 하이퍼 링크가 포함 된 다른 텍스트 필드를 추가 할 수 있습니다.