Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dwie petle - dziwny problem
InosU31
post
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


Witam

Nie wiedzialem jak zatutulowac ten temat bo mam problem ktorego nie rozumię....

posiadam taki kod:

  1. $result = $dbase->get_query("
  2. SELECT * FROM panel WHERE user='au'
  3. ");
  4.  
  5. if ($result)
  6. {
  7. $table_name = strtolower($result[0]['naglowek']);
  8.  
  9. $news_login->tassign['tytul'] = "<strong>Panel</strong>";
  10. ");
  11. $i = 0;
  12.  
  13. while ($result[$i]['id_ramki'])
  14. {
  15.  
  16. $result_linki = $dbase->get_query("
  17. SELECT * FROM linki Where id_ramki = '".$result[$i]['id_ramki']."' and user ='au'
  18. ");
  19. echo $result[$i]['id_ramki']."<br>";
  20.  
  21. if ($result_linki)
  22. {
  23. $news_login->tassign['menu_roz'] .= "<li><a href=\"?panel=1\">".$result[$i]['naglowek']."</a>";
  24. foreach ($result_linki as $record_linki)
  25. {
  26.  
  27. echo $record_linki['name_link']."<br>";
  28.  
  29. $pod_menu_roz->tassign['pod_menu_roz'] .= "<li><a href=\"?panel=#\">".$record_linki['name_link']."</a></li>";
  30.  
  31. }
  32. $news_login->tassign['menu_roz'] .= $pod_menu_roz->parse("panel/common/pod_menu_rozwijane.html");
  33.  
  34. }
  35. else
  36. {
  37. $news_login->tassign['menu_roz'] .= "<li><a href=\"?panel=1\">".$result[$i]['naglowek']."</a></li>";
  38.  
  39. }
  40.  
  41.  
  42. $i++;
  43.  
  44. }
  45.  
  46. }
  47.  
  48. }
  49.  
  50. $main->tassign['news_login'] = $news_login->parse("panel/common/menu_rozwijane.html");
  51. $page->tassign['main'] = $main->parse("panel/common/content.html");


jak wyswietlam echo ktore widac w tym kodzie to wynik jest prawidlowy czyli:

1
Wy?wietl
2
3
Obecnie
Ostatnie 30dni
Zakres dni
4
Zobacz
7

liczby to linki z menu a napisy to linki z rozwiniecia tego menu. Jak widac echo wyswietla prawidlowo wynik tych petli,menu tez sie dobrze wyswietla ale to rozwiniecie juz nie... pokaze to na przykladzie:

1
Wy?wietl
2
3
Wyswietl ---- tego nie powinno tu byc
Obecnie
Ostatnie 30dni
Zakres dni
4
Wyswietl ---tu tego tez nie
Obecnie ---tu tego tez nie
Ostatnie 30dni ---tu tego tez nie
Zakres dni ---tu tego tez nie
Zobacz
7

Jak widac z petli foreach powtarzaja sie wyniki co jest dla mnie niezrozumiale zwlaszcza ze za kazdym razem kiedy petla wraca na gore pobiera od nowa dane z bazy linki ale bez tych wczesneijszych wynikow. Dlaczego sie tak dzieje? gdzie robie blad?

z gory dzieki za pomoc

Pozdrawiam

Ten post edytował InosU31 28.01.2013, 21:59:54
Go to the top of the page
+Quote Post
tolomei
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Witaj.

Proszę popraw formatowanie kodu.
Ale zrób to w nowym poście bo HUMOR się nie uda (IMG:style_emoticons/default/biggrin.gif)

Pozdrawiam.
Go to the top of the page
+Quote Post
InosU31
post
Post #3





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

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


nie wiem czy o to chodzilo ale poprawilem. Jaki humor? ja sie powaznie pytam i nie widze w tym nic smiesznego....

uff poradzilem sobie:-)

zamiast parsowac plik html - przez petle wyniki mi sie powtarzaly choc nadal tego nie rozumiem - wystarczylo zrobic tak:
  1. $news_login->tassign['menu_roz'] .= "<li><a href=\"?panel=1\">".$result[$i]['naglowek']."</a>";
  2. $news_login->tassign['menu_roz'] .= "<ul>";
  3. foreach ($result_linki as $record_linki)
  4. {
  5. $news_login->tassign['menu_roz'] .= "<li><a href=\"?panel=#\">".$record_linki['name_link']."</a></li>";
  6. }
  7. $news_login->tassign['menu_roz'] .= "</ul></li>";
  8. //$news_login->tassign['menu_roz'] = $pod_menu_roz->parse("panel/common/pod_menu_rozwijane.html");


Ten post edytował InosU31 28.01.2013, 23:46:57
Go to the top of the page
+Quote Post
!*!
post
Post #4





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Koledze wyżej chodziło o to że masz niezły burdel w kodzie (IMG:style_emoticons/default/wink.gif)
Przeczytaj ten temat Temat: Najczestsze bledy w PHP i antywzorce

Później sprawdź przez var_dump()co zawiera ta zmienna w pętli
  1. while ($result[$i]['id_ramki'])

Bo jak na moje oko, to jest źle.
A najlepiej to jakbyś przeczytał jakie pętle są w php, oraz jak ich używać. http://pl.wikibooks.org/wiki/PHP/Struktury_kontrolne
I jeśli dobrze Cie zrozumiałem, to powinieneś napisać to rekurencyjnie (poszukaj pod tą frazą w wyszukiwarce, było dużo).
Go to the top of the page
+Quote Post

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: 21.10.2025 - 21:01