Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Pętla w pętli
Woytek950
post 30.01.2010, 15:57:04
Post #1





Grupa: Zarejestrowani
Postów: 130
Pomógł: 2
Dołączył: 6.06.2008
Skąd: jesteś ?

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


Witam. Próbuję stowrzyć skrypt forum i natknąlem się na problem:
gdy próbuj wyświetlić kategorie to wiadomo że po kategoriach są fora i pętla while nie wystarcza,albo wystarcza a ja nie umiem sobie poradzić. Może chodzi o pętlę w pętli ?

  1.  
  2. while ($wiersz = mysql_fetch_array($wynik))
  3.   {
  4. echo $wiersz['kategoria']."<br />";
  5. //echo $wiersz['forum']."<br />" i tu jest problem, czy trzeba zrobić od nowa pętle razem z zapytanuiem ? ;
  6.  
  7.  
  8.   }
  9.  
  10.  

To jest przykład, trochę lipnie wytłumaczone ale mam nadzieję że zrozumiecie.


Go to the top of the page
+Quote Post
Max Damage
post 30.01.2010, 16:05:47
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


Robisz forum, gdzie po kategoriach są fora? Chyba nie łapie.
Powiedz jak to masz w tabeli, i co chesz dokładnie wyświetlić.


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
Woytek950
post 30.01.2010, 18:10:19
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 2
Dołączył: 6.06.2008
Skąd: jesteś ?

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


[ --------- forum ---------  --autor --  -- tematow -- ]
[ --------------------- Jakas kategoria ---------------]
[ Jakies forum                       nick                 32        ]
[ --------------------- Jakas kategoria ---------------]
[ Jakies forum                       nick                 32        ]



lol chyba zobrazowałem dokładnie. mam dwie tabele: kategorie i fora i chcę wyświetlić je:
przecież nie wyświetle nazwy forum i kategorii w jednej pętli
  1. while ($wiersz = mysql_fetch_array($wynik))
  2. {
  3.   echo $wiersz['nazwa_kategoria'];
  4. ]






Ref. Wiecie o co mi się rozchodzi czy mam to jeszcze inaczej objaśnić 
Go to the top of the page
+Quote Post
wizard144
post 30.01.2010, 18:45:38
Post #4





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

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


Pisalem Ci gotowy skrypt ale mi sie odswiezyla przegladarka wiec juz nie pisze drugi raz. napisze po krotce jak to ma wyglądać

1. Pobierasz dane z tablicy z kategoriami
2. zliczasz rekordy (ilosc kategorii) -> mysql_num_rows()
3. Wchodzisz w petle while (x < ilosc_kategorii)
4. Pobierasz za pomocą mysql_result() idkategorii i jej nazwe
5. Wyswietlasz nazwe
6. Pobierasz dane z tablicy z forami WHERE kategoria='id_kategorii'
7. zliczasz rekordy (ilosc for) -> mysql_num_rows()
8. puszczasz to w petle while (y < ilosc_for)
9. Za pomoca mysql_result walisz sobie id nazwe forum i autora
9.1 wyswietlasz nazwe forum i autora
10. Pobierasz dane z tablicy z tematami WHERE forum='id_forum'
11. Zliczasz ilosc tematow
12. Wyswietlasz ilosc tematow
Go to the top of the page
+Quote Post
Woytek950
post 31.01.2010, 14:56:25
Post #5





Grupa: Zarejestrowani
Postów: 130
Pomógł: 2
Dołączył: 6.06.2008
Skąd: jesteś ?

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


Nadal nie wiem jak to zrobić... 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  5. <meta name="author" content="mazuki" />
  6. <title>Bez tytułu 1</title>
  7. </head>
  8. <body>
  9. <?php
  10. include("config.php");
  11.  
  12. $query_1 = "SELECT * FROM kategorie";
  13. $result1 = mysql_query($query_1);
  14. $query_2 = "SELECT * FROM fora";
  15. $result2 = mysql_query($query_2);
  16.  
  17. $query_3 = "SELECT * FROM kategorie";
  18. $result3 = mysql_query($query_3);
  19. $ro3 = mysql_num_rows($result3);
  20.  
  21. $m = 0;
  22. while($m < $ro3)
  23. {
  24. while($row1 = mysql_fetch_array($result1))
  25. {
  26. echo "<div style=\"width 300px; border: 1px solid gray;\">".$row1['nazwa_kategoria']."</div>";
  27. while($row2 = mysql_fetch_array($result2))
  28. {
  29. echo "<div style=\"width 300px; border: 1px solid red;\">".$row2['nazwa_forum']."</div>";
  30. }
  31. }
  32.  
  33.  
  34.  
  35. $m++;
  36. }
  37. // echo "<table border='1' width='500'>";
  38. // echo "</table>";
  39. ?>
  40. </body>
  41. </html>

nakierujcie mnie na dobrą drogę... 
Go to the top of the page
+Quote Post
wizard144
post 31.01.2010, 15:20:17
Post #6





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

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


  1.  
  2.  
  3. echo"<table>";
  4.  
  5. $z="SELECT * FROM kategorie";// Tabela z kategoriami ID | NAZWA
  6. $w=mysql_query($z) // wywolanie zapytania $z
  7.  
  8. $n=mysql_num_rows($w); // zliczanie rekordow zapytania $z (ilosc kategorii)
  9.  
  10.  
  11. for($x=0;$x<$n;$x++) // petla do przeszukiwania FOR
  12. {
  13. $id_kategorii=mysql_result($w,$x,"id"); // ID kategorii
  14. $nazwa_kategorii=mysql_result($w,$x,"nazwa"); // nazwa kategorii
  15.  
  16. echo"<tr><td colspan='3'>$nazwa_kategorii</td></tr>"; // wyswietlamy nazwe kategorii
  17.  
  18. $z1="SELECT * FROM fora WHERE kategoria='$id_kategorii'"; // Szukamy for które są w danej kategorii
  19. $w1=mysql_query($z1);// wykonujemy zapytanie $z1
  20.  
  21. $n1=mysql_num_rows($w1); // zliczamy ilość for danej kategorii
  22.  
  23.  
  24. for($y=0;$y<$n1;$y++) // przeszukujemy tematy
  25. {
  26. $id_forum=mysql_result($w1,$y,"id"); // pobieramy id forum
  27. $nazwa_forum=mysql_result($w1,$y,"nazwa"); // nazwe
  28. $auto_rforum=mysql_result($w1,$y,"autor"); // i autora
  29.  
  30. $z2="SELECT * FROM tematy WHERE forum='$id_forum' "; // Wybieramy wszystkie tematy które należą do tego forum
  31. $w2=mysql_query($z2) // wykonujemy zapytanie $z2
  32.  
  33. $n2=mysql_num_rows($w2); // zliczamy ilosc tematow
  34.  
  35. echo"<tr><td>$nazwa_forum</td><td>$autor_forum</td><td>$n2</td></tr>"; // wyswietlamy dane
  36.  
  37. }
  38.  
  39.  
  40. }
  41.  
  42. echo"</table>";
  43.  
  44.  


teraz struktura tabeli w bazie danych.

są 3 tabele.

1. kategorie - ID | NAZWA
2. fora - ID | NAZWA | KATEGORIA
3. tematy - ID | NAZWA | ... | ... | forum|

W tablicy tematy masz umieszczone nazwy i id tematow a takze do kazdego tematu musisz miec do jakiego forum nalezy. Wtedy skrypt powinien dzialac.

Ten post edytował wizard144 31.01.2010, 15:39:41
Go to the top of the page
+Quote Post
Woytek950
post 6.02.2010, 15:32:13
Post #7





Grupa: Zarejestrowani
Postów: 130
Pomógł: 2
Dołączył: 6.06.2008
Skąd: jesteś ?

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


Dzięki Kolego  yahoo.gif Jesteś zajebisty !
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: 17.05.2025 - 15:34