2010-12-08 17 views
0

Je sais, que cela pourrait être super facile, mais probablement, travailler en retard juste arrêté mon cerveau ... Très bien. Voici mon PHP, qui fait une liste dynamique à deux niveaux pour moi. http://robertr.pastebin.com/K2XvruPrListe dynamique à deux niveaux php

<? 
    $last = NULL; 
    $query = "SELECT s.id AS sect_id, s.name AS sect_name, s.alias AS sect_alias, c.name AS cat_name, c.alias AS cat_alias 
    FROM data_sections s, data_categories c 
    WHERE s.id = c.section_id 
    AND s.deleted = 0 
    AND c.deleted = 0"; 
    echo "<ul>\n"; 
    $result = mysql_query($query); 
    while($list = mysql_fetch_array($result)){ 

     if($last!=$list['sect_name']) { 
      echo "<li>".$list['sect_name']."</li>\n"; 
      $last = $list['sect_name']; 
     } 
     echo "<ul>"; 
     echo "<li>".$list['cat_name']."</li>"; 
     echo "</ul>\n"; 
    } 
    echo "</ul>"; 
    ?> 

Tout sur la sortie de vue est joli, mais vue source est pas comme je veux. robertr.pastebin.com/J7bPQeXj (copier coller dans la barre d'adresse).

Quelqu'un pourrait-il m'aider à comprendre, comment faire ces étiquettes UL de deuxième niveau une seule fois pour toutes les catégories, pas pour chacune.

Merci!

+1

Mieux vaut copier le code dans la question de raccourcir le chemin vers la solution – Eineki

Répondre

1

un rapide NON TESTÉ fixer

<? 
$last = NULL; 
$query = "SELECT s.id AS sect_id, s.name AS sect_name, s.alias AS sect_alias, c.name AS cat_name, c.alias AS cat_alias 
FROM data_sections s, data_categories c 
WHERE s.id = c.section_id 
AND s.deleted = 0 
AND c.deleted = 0"; 
echo "<ul>\n"; 
$result = mysql_query($query); 
while($list = mysql_fetch_array($result)){ 

    if($last!=$list['sect_name']) { 
     if ($last != null) echo "</ul>"; 
     echo "<li>".$list['sect_name']."</li>\n"; 
     $last = $list['sect_name']; 
     echo "<ul>"; 
    } 
    echo "<li>".$list['cat_name']."</li>"; 
} 
echo "</ul>\n"; 
echo "</ul>"; 
?> 
+0

Merci beaucoup! :) – Rozkalns