المحتوى
قائمة الشجرة هي تمثيل مرئي لقائمة من العناصر ، منظمة بحيث يمكن توسيع بعض العناصر أو الفئات ، المسماة "العقد الرئيسية" ، وعرض العناصر الفرعية ، المسماة "العقد الفرعية". يمكنك الحصول على معلومات من قاعدة بيانات MySQL وإنشاء قائمة شجرة على صفحة ويب باستخدام PHP. يجب أن يحتوي جدول MySQL الخاص بك على تنسيق محدد يحدد العقد الأصل والتابعة والعلاقات بينهما. سيكون كل سجل في الجدول عقدة ويمكنك إنشاء تسلسل هرمي متعدد المستويات.
الاتجاهات
تعمل قائمة الشجرة على تنظيم البيانات في التسلسل الهرمي (Photos.com/Photos.com/Getty Images)-
تسجيل الدخول إلى قاعدة بيانات MySQL الخاصة بك. إنشاء جدول مع ثلاثة حقول: معرف العقدة والوصف ومعرف العقدة الأصل. أدخل المعلومات في الجدول. يجب أن يكون كل معرف عقدة فريدًا. تحتوي عقد المستوى الأعلى على معرف عقدة أصلية بقيمة 0 وتشير عقدة تابعة إلى رقم عقدة المستوى الأعلى.
-
افتح ملف 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.
-
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.
-
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.
-
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']) . ' '; }
-
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'.
-
Digite o seguinte código:
echo menuarvore($menu);
يستدعي السطر الأول وظيفة "menuarvore" ويمرر المعلومات إلى قاعدة بيانات MySQL ، ثم يعرض الشجرة في صفحة الويب. السطر الثاني يغلق كتلة كود PHP.
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.
نصائح
- أضف المزيد من الحقول إلى جدول MySQL إذا لزم الأمر. على سبيل المثال ، يمكنك إضافة حقل نص آخر يحتوي على الارتباطات التشعبية لكل عقدة.