Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wyświetlenie tabeli w zależności od danych w pętli
Forum PHP.pl > Forum > Przedszkole
Kshyhoo
Witam. Mam taką pętlę:
Kod
[litery] => Array (
  [0] => 0
  [1] => 0
  [2] => 0
  [3] => 1
  [4] => 1
  [5] => 1
  [6] => 1
  [7] => 1
)

Chcę wyświetlić to w pętli pogrupowane:
Kod
+---+---+
| A | 0 |
|   | 0 |
|   | 0 |
| B | 1 |
|   | 1 |
|   | 1 |
|   | 1 |
|   | 1 |
+---+---+

Za pomocą takiego kodu:
  1. foreach($tablica['litery'] as $litera) {
  2. if(isset($litera) AND $litera == '0') {
  3. $a = count($litera);
  4. for($i=0;$i<$a;$i++) {
  5. echo 'A<br />';
  6. }
  7. } elseif(isset($litera) AND $litera == '1') {
  8. $b = count($litera);
  9. for($i=0;$i<$b;$i++) {
  10. echo 'B<br />';
  11. }
  12. } else {
  13. echo "-";
  14. }
  15. }

Co daje mi:
Kod
+---+---+
| A | 0 |
| A | 0 |
| A | 0 |
| B | 1 |
| B | 1 |
| B | 1 |
| B | 1 |
| B | 1 |
+---+---+

Jak mam zrobić, żeby pozbyć się duplikatów?
trueblue
http://forum.php.pl/index.php?s=&showt...t&p=1228755
Punkty 3-8.

Dlaczego wyświetlasz to kolumnami, a nie wierszami?
Wyświetlaj |A|0|, potem kolejny wiersz.
Kshyhoo
Ale ja to chcę w jednej komórce.
trueblue
Pokombinuj z właściwością komórki rowspan, a nie <br>.
Kshyhoo
To jest wciąż jedna komórka... nie ma co łączyć.
trueblue
Nie wiem w jakim znaczeniu to piszesz, czy nie chcesz łączyć, czy nie masz co połączyć.

Jeśli to drugie, to owszem jest.
Drukujesz wierszami. Kiedy wyświetlasz komórkę z wartością A, to nadajesz jej rowspan o wartości takiej ile jest wartości w drugiej kolumnie. W kolejnej iteracji/wierszu drukujesz tylko druga komórkę.
Kshyhoo
No ale po jakiego grzyba mam dzielić komórkę na dwie i z wiersza robić nawet 20 a z kolumny dwie?
trueblue
Nie wiem czy dobrze zrozumiałeś, bo ja Ciebie nie.
Ale jeśli Ty mnie dobrze, to po takiego grzyba:

  1. <tr>
  2. <td rowspan="5">A</td>
  3. <td>0</td>
  4. </tr>
  5. <tr>
  6. <td>1/td>
  7. </tr>
  8. <tr>
  9. <td>2</td>
  10. </tr>
  11. <tr>
  12. <td>3</td>
  13. </tr>
  14. <tr>
  15. <td>4</td>
  16. </tr>


Żeby wygenerować ten kod nie potrzebujesz kombinacji z zapytaniem, dziwnymi pętlami i <br>'ami.

Ale jeśli chcesz zostać przy swoim i upychać wszystkie wartości w jedną komórkę, to postępuj zgodnie ze wskazówkami, które pokazałem w punktach. Przy czym zamiast przechodzenia do kolejnej komórki tabeli, wstawiaj <br> za każdą wartością. Zamykasz wiersz tabeli dopiero kiedy natrafisz na nową wartość z litery.
Kshyhoo
Już mówię. Gdy rekordów będzie 2000 a alternatyw 20, to tabela będzie miała 20 000 wierszy. Wiem, że mogę porcjować dane, ale...
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-2024 Invision Power Services, Inc.