Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Układ w tabeli z danych z tablicy
Forum PHP.pl > Forum > Przedszkole
roobik
Witam.
Mam tablicę, lecz jeśli chodzi już o wyświetlanie, to chciałbym ją poukładać "po swojemu".
Tablica wygląda mniej więcej tak:



Założenie (układ w tabeli) jest takie:


Jeśli chodzi o tablicę - to nie jest ona "na stałe" - co parę chwil (a dokładnie co ok. minutę) się zmienia-> zmniejsza z upływem czasu aż do godz. 23:59. Potem w dniu następnym jest znowu wielka i z uplywem czasu coraz mniejsza.

Wzorzec:
Dwa wiersze (TR), trzy kolumny (TD).

Tam gdzie 1
[2] => obrazek
[8] => inny obrazek
[14] => obrazek
[20] => jeszcze inny obrazek

Tam gdzie 2
[1] => 46543/2
[7] => 76924
[13] => 26101 MORCINEK
[19] => 69980/1

Tam gdzie 3 i 4
chwilowo nic

Tam gdzie 5
[4] => Lubliniec - Wrocław Główny
[10] => Poznań Główny - Wrocław Główny
[16] => Kielce - Wrocław Główny
[22] => Trzebnica - Wrocław Główny

Tam gdzie 6
[6] => 0 min
[12] => 0 min
[18] => 0 min
[24] => 0 min


OK. Z pewnością widzicie, że każdy następny element tablicy jest większy o 6
Nie wiem jak to ugryźć, ale myślę, że muszę zacząć od zliczenia ile jest wszystkich elementów, a potem zrobić tak, by w konkretnym miejscu w tabeli (np. tam gdzie 1) wyświetlać dane


Jak to ugryźć, żeby w danym miejscu tabeli wyświetlać elementy zwiększające się o "6"?

Nie wiem, czy wystarczająco zrozumiale napisałem, bo sięteraz sam zamotałem wink.gif
SzpaaQ
  1. $x = $twojatablica;
  2. $tablica = array_chunk($x,6);
  3. $echo = '<table>';
  4. foreach($tablica as $key){
  5. $echo .=
  6. '<tr>
  7. <td>'.$key[1].'</td>
  8. <td>'.$key[0].'</td>
  9. <td></td>
  10. </tr><tr>
  11. <td></td>
  12. <td>'.$key[3].'</td>
  13. <td>'.$key[5].'</td>
  14. </tr>';
  15. }
  16. $echo .= '</table>';
  17. echo $echo;

nie wiem czy dobrze rozumiem ale array_chunk dzieli na mniejsze tablice kazda po 6 elementów
roobik
OK, prawie...
Bo w dwóch wierszach zamista trzech kolumn jest pięć kolumn...
Gdzieś w tym foreachu jakieś niepotrzebne dwa <td></td> się wplątały...

//edit
SzpaaQ
dziwne sprawdziłem i efekt taki:
przy kodzie
  1. <?
  2. $x = range('A','z');
  3. $tablica = array_chunk($x,6);
  4. $echo = '<table>';
  5. foreach($tablica as $key){
  6. $echo .=
  7. '<tr>
  8. <td>'.$key[1].'</td>
  9. <td>'.$key[0].'</td>
  10. <td></td>
  11. </tr><tr>
  12. <td></td>
  13. <td>'.$key[3].'</td>
  14. <td>'.$key[5].'</td>
  15. </tr>';
  16. }
  17. $echo .= '</table>';
  18. echo $echo;
  19. ?>

czyli tak jak powinno być pokaż jak to napisałeś tongue.gif
roobik
Mam dokładnie tak, jak Ty:
  1. ...
  2. foreach($tablica_ooo as $key){
  3. $echo .=
  4. '<tr>
  5. <td><b>key2 </b>'.$key[2].'</td>
  6. <td><b>key1 </b>'.$key[1].'</td>
  7. <td></td>
  8. </tr><tr>
  9. <td></td>
  10. <td><b>key5 </b>'.$key[5].'</td>
  11. <td><b>key6 </b>'.$key[6].'</td>
  12. </tr>';
  13. }


Ale może mam gdzieś tabelę niezamkniętą... Posprawdzam (trochę to zajmie)

//edit
OK. To co podałeś jest w porządku.
Jednak wracając do mojego pierwszego posta i ostatniego w tym poście "zdjęcia", byłoby coś takiego:
  1. $echo = '<table border=1>';
  2. foreach($tablica_ooo as $key){
  3.  
  4. $echo .=
  5. '<tr>
  6. <td><b>key2 </b>'.$key[2].'</td>
  7. <td><b>key1 </b>'.$key[1].'<br><b>key4 </b>'.$key[4].'</td>
  8. <td></td>
  9. </tr><tr>
  10. <td></td>
  11. <td><b>key5 </b>'.$key[5].'<br><b>key3 </b>'.$key[3].'</td>
  12. <td><b>key6 </b>'.$key[6].' minut</td>
  13. </tr>';
  14. }
  15. //echo 'KEY: '; print_r($tablica_ooo[0]);
  16. $echo .= '</table>';
  17. echo $echo;

Efekt, jak na załączonym obrazku:
SzpaaQ
coś tam masz namieszane
  1. $echo .=
  2. '<tr>
  3. <td><b>key2</b> '.$key[1].'</td>
  4. <td><b>key1</b> '.$key[0].'<br><b>key4 </b>'.$key[3].'</td>
  5. <td></td>
  6. </tr><tr>
  7. <td></td>
  8. <td><b>key 5</b>'.$key[4].'<br><b>key3 </b>'.$key[2].'</td>
  9. <td><b>key 6</b>'.$key[5].'</td>
  10. </tr>
  11. ';

efekt
roobik
Zrobiłem teraz tak, że ten plik jest zupełnie osobnym plikiem (wyłącznie do testów, żeby wiedzieć gdzie mam babola).

daję print_r($tablica_ooo);
i otrzymuję
Cytat
Array ( [0] => Array ( [0] => [1] => 56200/1
ROZEWIE [2] => [3] => 2015-12-05 [4] => Gdynia Główna - Wrocław Główny [5] => 05:07 ) [1] => Array ( [0] => 0 min [1] => 26200/1
KARKONOSZE [2] => [3] => 2015-12-05 [4] => Lublin - Szklarska Poręba Górna [5] => 05:15 ) [2] => Array ( [0] => 0 min [1] => 38100/1
BARBAKAN [2] => [3] => 2015-12-05 [4] => Przemyśl - Szczecin Główny [5] => 10:55 ) [3] => Array ( [0] => 0 min


Może tu jest błąd - chociaż ja go nie widzę...

//edit
nie wyświetla również $key[6] (ilość minut opóźnienia) - co jest...?

Tak to wygląda:
SzpaaQ
pokaz print z głównej tablicy

zerowy rekord w tablicy jest i jest pusty na początku - przez to przenosi Ci key 6 jako key 0 do nastepnej
wywal z pierwszej wersji całej tablicy pierwszy rekord i zrób tak jak pisałem tj. key 1 bedzie odpowiadać $key[0], key2 to $key[1] itd
roobik


odpowiednio:
  1. print_r($tablica_ooo);

  1. print_r($Wyniki);


//edit
jeszcze print_r($Wyniki[0][0]);


$Wyniki[0][0] - Przyjazdy
$Wyniki[0][1] - Odjazdy
strona źródłowa: http://infopasazer.intercity.pl/?p=station&id=60103
SzpaaQ
ciężko będzie jak będziesz obrazkami sypał - oczy bolą od tego nieładu ;D ciekawi mnie jak kod źródłowy wygląda, ale poddaję się smile.gif
powodzenia aarambo.gif
roobik
ok ... walczę dalej

Ale i tak dzięki za zainteresowanie (zwłaszcza o tej porze wink.gif )

Pozdrawiam!

//edit
Walczę dalej. Muszę znaleźć babola - nie wyświetla mi opóźnienia.
Nie wiem czemu, mimo, że w tablicy są te dane...

Tablica:


Tabelka


Co jest...?

// edit 2
Jak daję tak, jak podał SzpaaQ:
  1. $echo .=
  2. '<tr>
  3. <td style="width: 20%;"><b>key2 </b>'.$keya[2].'</td>
  4. <td><b>key1 </b>'.$keya[1].'<br><b>key4 </b>'.$keya[4].'</td>
  5. <td style="width: 10%; font-family: Tahoma, Verdana, Arial; font-size: 10px; font-weight: bold;"></td>
  6. </tr><tr>
  7. <td></td>
  8. <td><b>key5 </b>'.$keya[5].'<br><b>key3 </b>'.$keya[3].'</td>
  9. <td><b>key6 </b>'.$keya[6].' </td>
  10. </tr>';
  11. }

to nie wyświetla mi minut, ale za to tabelka nie rozjeżdża się, czyli wygląda tak:


Ale jeśli w ostatnim wierszu, czyli:
  1. <td><b>key6 </b>'.$keya[6].' </td>

zmienię na
  1. <td><b>key6 </b>'.$keya[0].' </td>

To otrzymuję (prawie) to co chciałem, czyli:


Problemy są dwa:
- jak się pozbyć tej tabelki po prawej stronie
- nie wyświetla się w pierwszym wierszu w tabelce opóźnienie
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.