Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: za dużo plików do wyświetlenia danych
Forum PHP.pl > Forum > Przedszkole
nie ja
mam baze danych do której łącze się za pomocą php
wszytskie dane wczytywane są z formularzy HTML (plik1), metodą POST przekazywany do drugiego pliku, gdzie odpowiedni kod php sprawdza dane i wrzuca je do bazy danych, a następnie wywoływany jest trzeci plik wyświeltlający zawartość danej (aktualnie modyfikowanej tabeli)... wszytsko działa pięknie i bez problemu

mój problem polega na tym, że tabel ( w tym i formularzy do wpisywania do nich) mam około 16 ( z czasem może będzie nawet więcej) i tworzenie trzech plików dla każdej... wydaje mi się troche nadmiarowe... szczególnie chodzi mi o plik wyświeltający zawartości tabel...
plik wyświetlający tabele ma prostą postać: najpierw wyrzuca etykiety kolumn (często inne niż nazwy kolumn w tabeli/bazie danych), a następnie prostymi pętlami "for" wyświetla całą zawartość tabeli. Kliknięcie na nagłówek danej kolumny powoduje przesortowanie tabeli względem tej właśnie kolumny.

wymyśliłam trzy rozwiązania mojego problemu i chciałabym, aby doświadczenie php'owcy podpowiedzieli mi które jest lepsze...

1) stworzyć jeden plik do wyświetlania wszystich tabel, gdzie wczytując zmienną $table będę decydować, która tablica jest wyświetlana
wady: trzeba by przy pomocy "if" sprawdzać która to tabela by wydrukawać
inne nagłówki kolumn dla każdej tabeli
2) stworzyc w bazie danych nową tabelę, gdzie będą przechowywane
(tablica, nazwa kolumny, etykieta kolumny) i stąd pobierać etykiety
- to również realizowane w jednym pliku php
3) stworzyć poprostu 16 plików, każdy do drukowania osobnej tabeli

z góry za wszelką pomoc
tiraeth
Pokaż kod tych trzech plików, to może coś wykombinujemy, bo niestety mój interpretor php nie sygnalizuje kodu php w Twoim poście smile.gif
nie ja
tego kodu jest dużo... więc w skrócie... przykładowy (uproszczony) jeden zestaw trzech plików

plik 1 (formularz hltm)

<form action="plik2.php" target="srodek" method="post">
<input name="imie" type="text">
<input name="nazwisko" type="text">
<input name="miejcowosc" type="text">
<input value="Dodaj" type="submit">
<input value="Wyczysć" type="reset">
</form>

plik2 (wczytywanie do bazy danych)

<?php
$jest=0;
$zimie=$_POST['imie'];
$znazw=$_POST['nazwisko'];
$zmiej=$_POST['miejsowosc'];
....// omijam sprawdzanie danych i łaczenie z bazą
$result = pg_exec($db, "INSERT INTO uczestnik (imie, nazwisko, miejscowosc)
VALUES ('$zimie', '$znazw', '$zmiej', );");
....
include ("lista.php") ;?>

plik3 - lista
<?php
$db = pg_connect....
if ( !empty( $db ))
{ if ($_REQUEST['order']==NULL) { $order="uczestnik_id" ; }
else {$order=$_REQUEST['order']; };
$query = "select * from uczestnik order by $order";
$select = pg_exec($db , $query);
print '<table style="width: 100%; text-align: left;" border="0"
cellpadding="2" cellspacing="2">';
print' <tbody> <tr> <td class="nr"> <br> </td>
<td class="nr"> <a href="lista.php?order=imie " >Imię:</a> <br> </td>
<td class="nr"> <a href="ucz_lista.php?order=nazwisko" >Nazwisko: </a><br> </td>
<td class="nr"> <a href="ucz_lista.php?order=miejscowosc" >Miasto: </a><br> </td> </tr>';

for ($row = 0; $row<pg_numrows($select); $row++)
{
print ' <tr>';
print ' <td class="nr">';
$nr=$row+1;
echo " $nr";
print '<br> </td> ';
for ($col=1; $col < pg_numfields($select); $col++)
{ if ($row%2==0) {
print ' <td class="jasne">';} else
{ print ' <td class="ciemne">';}
$krotka = pg_result($select, $row, $col). " ";
echo "$krotka" ;
print '<br> </td> ';
}
print ' </tr>';
}
print ' </tbody> </table>';
pg_freeresult($select);
} else { print ("Błąd przy podłączeniu bazy danych") ;}
pg_close($db);
?>


część kodu (moim zdaniem mniej ważnego wyciełam) ale mam nadzieje ze z tego juz cos widac
to jest jeden zestaw do wyswietlania ludzików... ale innych rzeczy(tabel) które bede musiała wyswietlac jest wiecej....
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.