Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Wyświetlenie tabeli w zależności od danych w pętli
Kshyhoo
post 9.02.2018, 18:04:32
Post #1





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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?


--------------------
Go to the top of the page
+Quote Post
trueblue
post 9.02.2018, 18:40:07
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


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.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 9.02.2018, 18:44:44
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Ale ja to chcę w jednej komórce.


--------------------
Go to the top of the page
+Quote Post
trueblue
post 9.02.2018, 18:52:53
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Pokombinuj z właściwością komórki rowspan, a nie <br>.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 9.02.2018, 18:54:10
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To jest wciąż jedna komórka... nie ma co łączyć.


--------------------
Go to the top of the page
+Quote Post
trueblue
post 9.02.2018, 19:25:55
Post #6





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


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ę.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 9.02.2018, 19:28:23
Post #7





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




No ale po jakiego grzyba mam dzielić komórkę na dwie i z wiersza robić nawet 20 a z kolumny dwie?


--------------------
Go to the top of the page
+Quote Post
trueblue
post 9.02.2018, 19:43:45
Post #8





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


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.


--------------------
Go to the top of the page
+Quote Post
Kshyhoo
post 9.02.2018, 19:55:25
Post #9





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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...


--------------------
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: 24.04.2024 - 14:24