Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Dodawanie <tr> i </tr> co 13 wykonań pętli
Forum PHP.pl > Forum > PHP
Babcia@Stefa
Witam, mam taki kod:

  1. <table border="1" cellpadding="0" cellspacing="0">
  2. <?php
  3. $fx = '13x13';
  4. $data = explode('x', $fx);
  5. $dta1 = $data[0];
  6. $towhile = $data[0]*$data[1];
  7. while ($petla < $towhile)
  8. {
  9. $petla++;
  10. if($number < $dta1)
  11. $number++;
  12. else
  13. $number = 1;
  14. if($number == $dta1) { echo '<tr><td>' .$petla. '</td></tr>';} else {echo '<td>' .$petla. '</td>';}
  15. }
  16. ?>
  17. </table>


Wyniki kodu są takie:
Cytat("Wyniki")
1 2 3 4 5 6 7 8 9 10 11 12
13
14 15 16 17 18 19 20 21 22 23 24 25
26
27 28 29 30 31 32 33 34 35 36 37 38
39
40 41 42 43 44 45 46 47 48 49 50 51
52
53 54 55 56 57 58 59 60 61 62 63 64
65
66 67 68 69 70 71 72 73 74 75 76 77
78
79 80 81 82 83 84 85 86 87 88 89 90
91
92 93 94 95 96 97 98 99 100 101 102 103
104
105 106 107 108 109 110 111 112 113 114 115 116
117
118 119 120 121 122 123 124 125 126 127 128 129
130
131 132 133 134 135 136 137 138 139 140 141 142
143
144 145 146 147 148 149 150 151 152 153 154 155
156
157 158 159 160 161 162 163 164 165 166 167 168
169


A powinny być takie:
1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21 22 23 24 25
26 27 28 29 30 31 32 33 34 35 36 37 38

itd..

Czy może ktoś pokazać gdzie zrobiłem błąd?
Wiem że jest to napewno drobny problem..

Dziękuję, Babcia@Stefa
starach
Czyli rozumiem że chcesz mieć 13 kolumn generowanych dynamicznie.
To nie prościej jest zastosować dwie pętle for() jedna wpisana w drugą ?
chaos_code
  1. <?php
  2. if($number == $dta1) { echo '<tr><td>' .$petla. '</td> </tr>';} else {echo '<td>' .$petla. '</td>';}
  3. ?>


Zamykasz TR a później wypisujesz resztę elementów.
Zamknięcie powinno być po wypisaniu.

Coś koło tego:

1. Otwierasz TR
2. Wypisujesz wszystkie TD
3. Zamykasz TR
Babcia@Stefa
Cytat(chaos_code @ 10.05.2007, 19:55:29 ) *
  1. <?php
  2. if($number == $dta1) { echo '<tr><td>' .$petla. '</td> </tr>';} else {echo '<td>' .$petla. '</td>';}
  3. ?>


Zamykasz TR a później wypisujesz resztę elementów.
Zamknięcie powinno być po wypisaniu.

Coś koło tego:

1. Otwierasz TR
2. Wypisujesz wszystkie TD
3. Zamykasz TR


Acha, widze błąd winksmiley.jpg
Bo ja otwieram <tr> przy końcu i odrazu zamykam a powinienen otwierać na początku a na końcu zamykać..

@edit
A oto rozwiązanie:
  1. <table border="1" cellpadding="0" cellspacing="0">
  2. <?php
  3. $fx = '13x13';
  4. $data = explode('x', $fx);
  5. $dta1 = $data[0];
  6. $towhile = $data[0]*$data[1];
  7. while ($petla < $towhile)
  8. {
  9. $petla++;
  10. if($number < $dta1)
  11. $number++;
  12. else
  13. $number = 1;
  14. if($number == 1) { echo '<tr>';}
  15. echo '<td>' .$petla. '</td>';
  16. if($number == $dta1)
  17. echo '</tr>';
  18. }
  19. ?>
  20. </table>


A oto jak działa:
Cytat("Jak działa")
1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21 22 23 24 25 26
27 28 29 30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49 50 51 52
53 54 55 56 57 58 59 60 61 62 63 64 65
66 67 68 69 70 71 72 73 74 75 76 77 78
79 80 81 82 83 84 85 86 87 88 89 90 91
92 93 94 95 96 97 98 99 100 101 102 103 104
105 106 107 108 109 110 111 112 113 114 115 116 117
118 119 120 121 122 123 124 125 126 127 128 129 130
131 132 133 134 135 136 137 138 139 140 141 142 143
144 145 146 147 148 149 150 151 152 153 154 155 156
157 158 159 160 161 162 163 164 165 166 167 168 169


Dziękuję, Babcia@Stefa
b_chmura
  1. <table border="1" cellpadding="5" cellspacing="0">
  2. <tr>
  3. <?php
  4. $dana = '13 || 13';
  5. $dane = explode(' || ', $dana);
  6. $wynik = $dane[0]*$dane[1];
  7. $i = 0;
  8. while($cnt < $wynik) {
  9. $cnt++;
  10. $i++;
  11. echo '<td align="center">' .$cnt. '</td>'."n";
  12.  
  13. if($i == $dane[0]) {
  14. echo '</tr><tr>'."n";
  15. $i = 0;
  16. }
  17. }
  18. ?>
  19. </tr>
  20. </table>


Nie prościej?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.