Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] drzewiaste menu
Forum PHP.pl > Forum > Przedszkole
Maciekbjw
Witam,

mam taką tabele w bazie:
Kod
  
   pages
   -id_page
   -id_parent
   -title


Czyli prosta struktura drzewiasta.

Teraz wchodzę przykładowo w podstronę od id_page = 3, której id_parent wynosi 2, natomiast id_parent podstrony 2 wynosi 1, mamy więc:
Kod
   podstrona nr 1 >> podstrona nr 2 >> podstrona nr 3


Chcę zrobić taką właśnie nawigację na stronie.

Napisałem coś takiego:
  1. <?php
  2. public function getParent($i_IdPage)  
  3.      {  
  4.      
  5.         $subpages = array();  
  6.         $sql="SELECT * FROM pages WHERE id_page = $i_IdPage";  
  7.         $result = $this->db->prepare($sql);  
  8.         $result->execute();  
  9.         $row = $result->fetch();  
  10.          
  11.         if($row['id_parent'] > 0)  
  12.         {  
  13.             $subpages = array_merge($subpages,$this->getParent($row['id_parent']));  
  14.             $subpages[] = $row;  
  15.         }  
  16.         else  
  17.         {  
  18.             $subpages[] = $row;  
  19.         }  
  20.      
  21.         return $subpages;  
  22.     }
  23. ?>


Działa, tylko chciałbym zrobić tak, by pobierało mi tylko strony nadrzędne, bez tej obecnej, przykład:

  1. <?php
  2. $a = New PageModel;
  3. echo $a->getParent(3);
  4.  
  5. //dostaje cos takiego
  6. // podstrona nr 1 >> podstrona nr 2 >> podstrona nr 3 (ta ktorej ID wywolalem)
  7.  
  8. ?>


Pytanie: jak zrobić, by skrypt nie wyświetlał tej "podstrona nr3" (ta, która jest wywoływana)

Będę wdzięczny za sugestie i porady smile.gif

Pozdrawiam
patryczakowy
A spóbuj tak
  1. <?php
  2. if($row['id_parent'] > 0 && $row['id_page']!=$i_IdPage )
  3. ?>

sprawdzić czy czasem $i_IdPage nie jest tym które wywołałem
adasiu
a id bieżącej kategorii jest pobierany getem??
Maciekbjw
tak
adasiu
to proponuję dodać ifa
  1. <?php
  2. if($row['id_parent'] > 0)  {  
  3.  $subpages = array_merge($subpages,$this->getParent($row['id_parent']));  
  4. }
  5. if(intval($_GET['id']) != $i_IdPage) {  
  6.   $subpages[] = $row;  
  7. }
  8. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.