Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Pętla w pętli
-Kosi11-
post
Post #1





Goście







Witam!

Mam następujący problem ze skryptem, mianowicie mam pętle while wyświetlającą rekordy z bazy. Chciałbym wewnątrz niej umieścić jeszcze jedną która będzie pobierała rekordy z innej bazy i tu mi się zaczął problem.

Wygląda to mniej więcej tak:

  1. $query = "(SELECT ...) ORDER BY data DESC";
  2. $result = mysql_query ($query);
  3. while ($row = mysql_fetch_array($result))
  4. {$body .= '
  5. <li class="box">
  6. ...
  7. <div class="reason">
  8. <div class="reasons"><div class="exit">x</div>
  9. <div class="why">
  10. <div class="opcja1"><div class="opcja1_head">'.$row[1].'</div>
  11.  
  12. I w tym miejscu chciałbym niemal identyczną pętle która będzie pobierała rekordy z innej bazy
  13.  
  14. </div>
  15. <div class="opcja2"><div class="opcja2_head">'.$row[2].'</div>
  16.  
  17. </div>
  18. </div>
  19. ...
  20. </li>';} echo '<ul>'.$body.'</ul>';


Jak to rozwiązać?

Pozdrawiam!
Go to the top of the page
+Quote Post
-DamianGosc-
post
Post #2





Goście







Dziwnie to troche napisales. Jak bys napisal normlaniej to bys poprotu dal tam druga petle (IMG:style_emoticons/default/smile.gif)

np

  1. while($row = mysql_fetch_array($users))
  2. {
  3. $nq = mysql_query("SELECT * FROM posts WHERE uid=$row[id]", $con);
  4. echo $row['username'] . "<br>";
  5. while($row2 = mysql_fetch_array($nq))
  6. {
  7. echo $row2['post_name'];
  8. }
  9. }


Go to the top of the page
+Quote Post
-kosi11-
post
Post #3





Goście







Nie chodzi mi o coś takiego jak twoje rozwiązanie, sformułuje mój problem inaczej, chciałbym umieścić pętle while w zmiennej $body w <li class="box"></li>

  1.  
  2. $query = "(SELECT ...) ORDER BY data DESC";
  3. $query_1 = "(SELECT ...) ORDER BY data DESC";
  4. $result = mysql_query ($query);
  5. $result_1 = mysql_query ($query_1);
  6. while ($row = mysql_fetch_array($result))
  7. {$body .= '
  8. <li class="box">
  9.  
  10. <div class="opcja1"><div class="opcja1_head">'.$row[1].'</div>
  11.  
  12. Pętla while nr. 2
  13.  
  14. </div>
  15.  
  16. </li>';} echo '<ul>'.$body.'</ul>';
  17.  
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





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

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


A nie możesz złączyć jakoś tych tabel np. joinem?
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
chciałbym umieścić pętle while w zmiennej $body w <li class="box"></li>
Ale wiesz, że teksty można przerywać w dowolnym miejscu i łączyć w dowolnym??
Go to the top of the page
+Quote Post
-kosi11-
post
Post #6





Goście







Cytat(nospor @ 17.05.2012, 15:38:41 ) *
Ale wiesz, że teksty można przerywać w dowolnym miejscu i łączyć w dowolnym??


Tzn? mógłbyc mi to troche przybliżyć

Nie jestem zaawansowanym programistom php więc nie ogarniam wszystkiego.

Tak dla jasności na rysunku przedstawiam co bym chciał osiągnąć.

(IMG:http://img339.imageshack.us/img339/781/beztytuukow.jpg)

Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Nie jestem zaawansowanym programistom php więc nie ogarniam wszystkiego.
Z całym szacunkiem, ale do tego co ci powiedziałem nie trzeba być zaawansowanym programistą.... to są podstawy....

Masz tak:
  1. $zm = 'linia1
  2. linia2
  3. linia3
  4. ...
  5. linian';

Chcesz w to wstawić pętle to ją wstaw.
  1. $zm = 'linia1
  2. linia2';
  3. //tu pętla co chcesz wstawic
  4.  
  5. //a tu dalej tekst
  6. $zm.='linia3
  7. ...
  8. linian';

Go to the top of the page
+Quote Post
-kosi11-
post
Post #8





Goście







Cytat(nospor @ 17.05.2012, 15:51:54 ) *
Z całym szacunkiem, ale do tego co ci powiedziałem nie trzeba być zaawansowanym programistą.... to są podstawy....

Masz tak:
  1. $zm = 'linia1
  2. linia2
  3. linia3
  4. ...
  5. linian';

Chcesz w to wstawić pętle to ją wstaw.
  1. $zm = 'linia1
  2. linia2';
  3. //tu pętla co chcesz wstawic
  4.  
  5. //a tu dalej tekst
  6. $zm.='linia3
  7. ...
  8. linian';


Zrobiłem tak jak mi podpowiedziałeś, ale jest pewien problem, mianowicie umieszczona przeze mnie pętla wyświetla się w zupełnie innym miejscu niż powinna, tzn wychodzi poza obszar który powinien ją obejmować.

kod wygląda tak:

  1. ...
  2. <div class="opcja1"><div class="opcja1_head">'.$row[1].'</div>';
  3.  
  4. while ($row_1 = mysql_fetch_array($result_1))
  5. if($query['id'] == $query_1['id'])
  6. {$bodie .= '
  7. <li class="reason_box">
  8. <div class="avatar"><img class="avatar_body" src="avatar/'.$row_1[3].'" /></div>
  9. <div class="text">'.$row_1[4].'</div>
  10. </li>';}
  11. else
  12. {$bodie .= '
  13. <li class="reason_box"></li>';}
  14. echo '<ul>'.$bodie.'</ul>';
  15.  
  16. $body .= '</div>
  17. <div class="opcja2"><div class="opcja2_head">'.$row[2].'</div>
  18. </div>
  19. </div>
  20. </div>
  21. </div>


Chciałem żeby pętla mieściła się w divie opcja1 a niestety wychodzi poza diva.
Go to the top of the page
+Quote Post
Niktoś
post
Post #9





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Może ,za długa lista jest i w sumie burzy ci układ strony.Użyj styli css i overflow:auto;
Poza tym, jak otwierasz pętle i gdzie ją zamykasz?

Ten post edytował Niktoś 17.05.2012, 18:40:04
Go to the top of the page
+Quote Post
-kosi11-
post
Post #10





Goście







Pętla nawet w kodzie źródłowym jest poza divem ;/ więc css raczej nie pomoże
Go to the top of the page
+Quote Post
Niktoś
post
Post #11





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Pętla while sposób 1:
  1. while ($row_1 = mysql_fetch_array($result_1)) { //-klamra otwierająca
  2.  
  3. .....instrukcje....
  4.  
  5. } //-klamra zamykająca

Sposób nr 2:
  1. while ($row_1 = mysql_fetch_array($result_1)) : //-rozpoczęcie warunku
  2.  
  3. .....instrukcje....
  4.  
  5. endwhile; //--zakończenie pętli


U Ciebie nie ma poprawnego zapisu.
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: 24.08.2025 - 10:59