Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Generowanie danych w postaci tabeli
Forum PHP.pl > Forum > PHP
kasprzak
Witam,

Pobieram sobie tablicę z pliku i chcialbym ja wyswietlic w sformatowanym XHTMLu. 

Muszę zrobic to tak:

-----------------------------
|      1         |     ...itd        |     
|      2         |       ...         |
|      3         |       ...         |
|     itd...     |       ....        |
----------------------------


Chodzi o to zeby w pierwszej kolumnie lecialy 1,2,3,4,5... a w drugiej 6,7,8,9 np.


Nie moge wpasc na to jak to z tymi petlami zrobic, zeby tak mi wypelnial, nawet nie moge wpasc jak zrobic zeby byly tak

-----------------------------
|      1         |       2          |     
|      3         |       4          |
|      5         |       6          |
|     7          |       ...        |
----------------------------
w sensie jak zrobic zeby tworzyl 2x <td></td> i potem znowu <tr></tr> i znowu 2x<td></td>



Nie wiem czy jasno sie wyrazilem, bo ciezko czasami wytlumaczyc swoj problem.

Z php mozna powiedziec ze zaczynam, prosze mnie nie odwolywac do wyszukiwarki, czy manuala, bo jestem poczatkujacym sad.gif

z gory dzieki za rady!
elmozaur
Hej ho.
Jesli wiesz ile jest pozycji to sprawa jest prosta:
Z=X/2 i masz ile powinno byc pozyci w kazdej kolumnie, nastepnie
w 1 petli wypisujesz w pierwszym wierszu <td>wartosc z 1pozycji</td> <td>wartosc z pozycji 1+Z</td>
kasprzak
Cytat(elmozaur @ 16.09.2008, 21:19:23 ) *
Hej ho.
Jesli wiesz ile jest pozycji to sprawa jest prosta:
Z=X/2 i masz ile powinno byc pozyci w kazdej kolumnie, nastepnie
w 1 petli wypisujesz w pierwszym wierszu <td>wartosc z 1pozycji</td> <td>wartosc z pozycji 1+Z</td>

Chyba nie skumalem do konca.

Doszedlem do takiego kodu...wszelkie dodawanie $i+1 koncza sie efektami innymi niz oczekuje :/
  1. <table border=1>
  2. <?php
  3. $ile=12; //ilosc rekordow
  4. $wierszy=round($ile/2); //ilosc wierszy
  5. for($i=0; $i<$wierszy; $i++){
  6. echo '<tr>';
  7. echo '<td>'.$i.'</td>';
  8. echo '</tr>';
  9. }
  10. ?>
  11. </table>
elmozaur
no i prawie dobrze ;-)
nie wiem czy to wychowawcze dawac gotowca ale co tam...


  1. <table border=1>
  2. <?php
  3. $ile=12; //ilosc rekordow
  4. $wierszy=round($ile/2); //ilosc wierszy
  5.  
  6. for($i=0; $i<$wierszy; $i++)
  7. {
  8. $ii=$i+$wierszy;
  9. echo '<tr><td>'.$i.'</td><td>'.$ii.'</td></tr>'; //dzieki temu 1 kolumna wypelnia sie od 0-5 a 2od 6-12
  10. }
  11. ?>
  12. </table>
siriondil
jesli mowimy o xhtmlu to <table border="1">
kasprzak
Cytat(elmozaur @ 17.09.2008, 07:51:09 ) *
no i prawie dobrze ;-)
nie wiem czy to wychowawcze dawac gotowca ale co tam...

  1. <?php
  2. ...
  3. ?>


Dzięki!
O to chodziło. Napewno będę miał jeszcze pytanko, a właściwie mogę już teraz zapytać.


Jak zrobić takie cos...

Mam plik dane.dat i w nim, struktura rozdzielona znakami '||' jest nastepujaca:

Kod
nazwa||pierwszy1
nazwa||drugi1
nazwa||trzeci1
nazwa2||pierwszy2
nazwa2||drugi2
nazwa3||pierwszy3


Teraz chcialbym zrobic tak aby
na początku pobieral mi naglowek nazwijmy to 'kategorii' (mowimy ciagle o tej tabelce powyzej) a dopiero potem wyswietlil dana tabelke z pierwszej katgorii czyli pierwszy1, pierwszy2, pierwszy3, potem wyswietlil kolejna 'kategorie' raz i potem znowu tabelke z pierwszy2, drugi2 czyli juz zawierajaca dane z drugiej kategorii z pominieciem tej pierwszej a jeszcze nie trzeciej itd.



Cytat(siriondil @ 17.09.2008, 14:48:12 ) *
jesli mowimy o xhtmlu to <table border="1">

Wiem, wiem...dzięki za zauważenie. XHTML jest docelowo, tutaj zamiescilem tylko dla wgladu przykladowe dane i zaznaczylem na poczatku ze jest to tabela a nie jakis bezsens np. <tr></tr> w <head> tongue.gif . Kosmetyki nie dodawalem.



Pozdrawiam!
elmozaur
hmm no zastanowmy sie:
po pierwsze primo musisz otworzyc plik .dat , nastepnie trzeba uzyc funkcji "foreach"
i kolejne wiersze pliku podac dzialaniu funkcji

  1. <?php
  2. explode("||", $wiersz_pliku);
  3. ?>


wynik zapisac do pehapowej tablicy Array i zamknac plik.

Majac tablice z kluczami i wartosciami mozesz zrobic wszystko i w kazdym kierunku (wyswietlac sortowac itp...
kasprzak
Cytat(elmozaur @ 18.09.2008, 10:20:49 ) *
hmm no zastanowmy sie:
po pierwsze primo musisz otworzyc plik .dat , nastepnie trzeba uzyc funkcji "foreach"
i kolejne wiersze pliku podac dzialaniu funkcji

  1. <?php
  2. explode(&#092;"||\", $wiersz_pliku);
  3. ?>


wynik zapisac do pehapowej tablicy Array i zamknac plik.

Majac tablice z kluczami i wartosciami mozesz zrobic wszystko i w kazdym kierunku (wyswietlac sortowac itp...


Wyswietlic, zapisac umiem, ale czesto brakuje mi pomyslu jak zrobic zeby wyswiila sie kategoria RAZ, potem wczytala tylko te ktore maja nazwe kategorii pierwsza, potem druga kategoria i wpisu z drugiej kategorii. 
Oczywiscie nazwy tych kategorii bylyby do edycji z innego panelu.
elmozaur
na zdrowa logike mozna zrobic tak:
w petli wyswietlajacej dostaw dodatkowa zmiennanp $nazwa.

Nastepie w petli wyswietlajacej zrob tak:(bedzie teoretycznie wiec pojade bez BBcode ;-)

petla
$nazwa='test';
jesli $nazwa != nazwy kategorii do wyswietlenia to wyswietl nazwe kategorii;
$nazwa=nazwa kategorii;
wyswietl wartosc; //np pierwszy drugi trzeci
/petla

Dziala to tak: przed petla zmienna nazwa ma jakikolwiek tekst.
PHP sprawdza warunek czy $nazwa jest rozne od nazwy kategorii do wyswietlenia (TRUE bo $nazwa=test a kategoria do wyswietlenia=kategoria1)
Wyswietlona zostaje nazwa i jednoczesnie podstawiona do zmiennej $nazwa;
nastepnie wyswietlona jest wartosc i petla sie powtarza z tym ze w drugim podejsciu $nazwa= nazwa kategorii do wyswietlenia wiec nazwa sie nie pokaze az do zmiany nazwy kategorii ;-)
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.