Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Skrócenie kodu z kilkoma pętlami
JamalBIG
post 14.03.2011, 00:12:00
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


Witam

Czy istnieje możliwość 'skrócenia' poniższego skryptu? Zależało by mi aby ilość pętli mogła być zależna od zmiennej np. 5 albo 6 pętli...
  1. $lista_kategorii = '(';
  2.  
  3. $result = @mysql_query("SELECT * FROM ".$prefix."_kategorie WHERE lewa_id='".$id."'");
  4. while ($row = @mysql_fetch_array($result)) {
  5. $lista_kategorii .= $row['id'].',';
  6.  
  7. $result2 = @mysql_query("SELECT * FROM ".$prefix."_kategorie WHERE lewa_id='".$row['id']."'");
  8. while ($row2 = @mysql_fetch_array($result2)) {
  9. $lista_kategorii .= $row2['id'].',';
  10.  
  11. $result3 = @mysql_query("SELECT * FROM ".$prefix."_kategorie WHERE lewa_id='".$row2['id']."'");
  12. while ($row3 = @mysql_fetch_array($result3)) {
  13. $lista_kategorii .= $row3['id'].',';
  14.  
  15. $result4 = @mysql_query("SELECT * FROM ".$prefix."_kategorie WHERE lewa_id='".$row3['id']."'");
  16. while ($row4 = @mysql_fetch_array($result4)) {
  17. $lista_kategorii .= $row4['id'].',';
  18. }
  19.  
  20. }
  21.  
  22. }
  23.  
  24. }
  25.  
  26. $lista_kategorii .= ')';


Struktura tabeli do której odnosi się skrypt wygląda następująco:
id | nazwa | lewa_id | poziom | pozycja

Z góry dzięki za pomoc
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
lukaskolista
post 14.03.2011, 08:10:51
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


zapytanie wsadz do funkcji i wywoluj rekurencyjnie
Go to the top of the page
+Quote Post
Fifi209
post 14.03.2011, 08:32:26
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


O boże! Jeżeli chcesz drzewko to nie tak! Poszukaj lepszych materiałów, doczytaj! Nie zabijaj serwera! On jest drogi!


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
JamalBIG
post 14.03.2011, 13:03:09
Post #4





Grupa: Zarejestrowani
Postów: 496
Pomógł: 1
Dołączył: 16.01.2008
Skąd: Świnoujście

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


możecie mi coś 'podsunąć' bo nawet nie wiem czego szukać, a napisałem temat właśnie po to żeby maksymalnie zoptymalizować ten kod i nauczyć się na przyszłość 'jak nie zabijać serwera' smile.gif

znalazłem rozwiązanie ale nie wiem jak wywołać wynik, bo prawidłowy otrzymuje tylko przy użyciu 'echo' w funkcji a przydało by się to umieścić w jakiejś zmiennej...
  1.  
  2. function szkielet_listy_kategorii($id) {
  3.  
  4. global $prefix;
  5.  
  6. $result = @mysql_query("SELECT * FROM ".$prefix."_kategorie WHERE lewa_id='".$id."'");
  7. while ($row = @mysql_fetch_array($result)) {
  8. echo $row['id'].',';
  9. szkielet_listy_kategorii($row['id']);
  10. }
  11.  
  12. }
Go to the top of the page
+Quote Post
marianek89
post 14.03.2011, 22:41:21
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 14.03.2011

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


Nie wiem czy o to konkretnie chodzi, ale czy nie lepiej umieścić to w tablicy?

  1. $licznikpoziomow = 0;
  2. $tablica = array();
  3. function szkielet_listy_kategorii($id)
  4. {
  5. global $prefix;
  6. global $licznikpoziomow;
  7. global $tablica;
  8.  
  9. $result = @mysql_query("SELECT * FROM ".$prefix."_kategorie WHERE lewa_id='".$id."'");
  10. while ($row = @mysql_fetch_array($result))
  11. {
  12. $tablica[$licznikpoziomow++] = $row['id'];
  13. szkielet_listy_kategorii($row['id']);
  14. }
  15. }


Teraz tylko odpowiednio przysiąść nad tablicą.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:30