Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Lista nieuporządkowana rekurencyjnie
windman
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 13
Dołączył: 7.01.2008

Ostrzeżenie: (0%)
-----


Witam,

mam funkcję rekurencyjną do wyświetlania stron

  1. <?php
  2. function menu($rodzic,$poziom) {
  3.  GLOBAL $prefix_tabela;
  4.  $rezultat=mysql_query("SELECT id,name,id_rodzica,page,publ FROM {$prefix_tabela}_pages ORDER BY id");
  5.  $razem=mysql_num_rows($rezultat);
  6.  while($wiersz = mysql_fetch_row($rezultat)){
  7. $id_k[]=$wiersz[0];
  8. $nazwa_k[]=$wiersz[1];
  9. $id_rodzica_k[]=$wiersz[2];
  10. $page_k[]=$wiersz[3];
  11. $publ_k[]=$wiersz[4];
  12.  }//while($wiersz = mysql_fetch_row($rezultat)){
  13.  
  14.  foreach($id_rodzica_k as $k=>$v) {
  15. if($v==$rodzic){
  16.  $e=str_repeat(' - ', $poziom);
  17.  echo $e.$nazwa_k[$k]."<br />";
  18.  menu($id_k[$k],$poziom+1);
  19. }//if($v==$rodzic){
  20. }//foreach($id_rodzica_k as $k=>$v) {
  21.  }//function menu($rodzic,$poziom) {
  22. ?>


i 2 pytania:

1) Wjaki sposób wyświetlić listę stron w postaci prawdziwej listy nieuporządkowanej.
2) Jka widać funkcja przy każdej rekurencji pobiera dane z bazy. Chciałem najpierw pobrać wszystko do tablicy aby funkcja operowała na tablicy, jednakże wtedy nie wyświetla się całe drzewo.

Ten post edytował windman 15.01.2008, 15:02:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
deirathe
post
Post #2





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. function root($id)
  3. {
  4. $q=mysql_query("SELECT *FROM {$prefix_tabela}_pages WHERE id=".$id);
  5. $d = mysql_fetch_array($q);
  6. echo "<li>".$d['name'];
  7.  
  8. $q=mysql_query("SELECT *FROM {$prefix_tabela}_pages WHERE id_rodzica=".$id);
  9. echo "<ul>";
  10. while($temp = mysql_fetch_array($q))
  11. {
  12. root($temp['id']);
  13. }
  14. echo "</ul>";
  15. }
  16. echo "</li>";
  17.  
  18. }
  19. $q = mysql_query("SELECT *FROM {$prefix_tabela}_pages WHERE id_rodzica=0");
  20. while($t = mysql_fetch_array($q))
  21. {
  22. root($t['id']);
  23. }
  24. ?>

pisane z palca sprawdz czy nie ma bldow
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 20:40