Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2007-07-20 07:50:00

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

Ilośc wyświetlanych tabel

Witam! mam taką sprawę. Niewiem czy jest to do zrobienia ale przykładowo mam skrypt w php w którym jest stworzona tabela z danymi wpisanymi na sztywno i danymi zaciąganymi z pliku za pomocą tablicy. I wszystko jest ok! W oknie przeglądarki elegancko wyświetla mi się jedna tabela z danymi. Ale mam taki pytanie - czy jest możliwe cos takiego - stworzyć plik formularza z jednym polem w którym podał bym jakąś liczbę np 15 i po kliknięciu w przycisk wyswietliła by mi sie strona z pietnastoma tabelami??( normalnie jest jedna ale co zrobić żeby można było sobie manipulować ile razy ten kod z tabelą ma sie wyswietlić na ekranie??BYł bym bardzo wdzięczny za jakie kolwiek informacje:)(aha tabele są napisane w htmlu a dane zaciągam za pomocą php)


dawid

Offline

 

#2  2007-07-20 08:23:55

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

Re: Ilośc wyświetlanych tabel

Udało mi sie dojśc do tego:

za pomocą for'a: mam jeden plik:

one.php
<form name="formularz" action="for.php" method="get">
wprowadz ilość miesięcy:
<input type="text" name="numer" size="10"><br>
<br><center><input type="submit" value="wydrukuj na ekran" onclick="document.formularz.action='for.php';document.formularz.submit();"/></center>

druki plik wygląda tak:

for.php

<?

$dana = $_GET['numer'];

for($i=0; $i< $dana; $i = $i+1)
{
    include "table.php";
}
?>


z czego table.php to skrypt z jedną tabelą.
W pierwszym skrypcie podaje numer. Jest ok -> może się komuś przyda:)


dawid

Offline

 

#3  2007-07-20 08:41:08

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Ilośc wyświetlanych tabel

Kod:

 onclick="document.formularz.action='for.php';document.formularz.submit();"

To coś w input o typie submit nie potrzebne, action określone w form, input o typie submit, robi submit. Jeszcze tylko </form> by sie przydało na dole co by było poprawnie.

Offline

 

#4  2007-07-20 08:51:35

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

Re: Ilośc wyświetlanych tabel

No tak jest ok! tylko zapomnialem że w każdej tabeli mają być inne dane a on mi wyświetla tylko te z pierwszej - czyli podaje numer 7 i powiela mi tabele wyswietlając w knie przeglądarki 7 tabel ale z danymi tylko z pierszej. I wpadłem na taki pomysł. gdybym w kodzie z pliku table.php niezaciągał jeszcze żadnych danych tylko te miejsca zostawił puste. A po wpisaniu np 7 kliknięciu zamiast wyswietlac mi to na przeglądarke wynik ( czyli tą ilość tabeli) wrzucał by mi do pliku i dopiero wtedy zaciągał dane i wyswietlał w oknie przeglądarki. Tylko że jest jeszcze jeden problem! ja wyciągam dane linia po lini ( wszystkie są w tej samej kolumnie ale nie w tym samym wierszu) i teraz jak to zorbić żeby on w drugiej tabeli dodawał mi 1 w trzeciej 2 itd.???bo wygląda to tak:

jest tabela a tu miejsce w którym ma sie pojawić dana:

<?
$fd1 = fopen("plik.txt","rw");
$wiersz1 = 0;
while(!feof($fd1))

{
  $dane1[$wiersz1] = substr(fgets($fd1,1024),6,11);

  $wiersz1++;
}

echo $dane1[28];

?>

- jak widać wszystko zaczyna sie od 28 lini - i tak ma być  (akurat tak plik wygląda że dane powyżej lini 28 są nieistotne i chce wyciągnąć tylko te od 28 poniżej):
czyli piersza tabela wyciąga dane z lini 28
druga z 29
trzecia z 30 itd.
A kod mi powieli tylko to z lini 28.
Ma ktoś jakis pomysł jak to wykonać?? był bym naprawde wdzięczny:)


dawid

Offline

 

#5  2007-07-20 09:37:14

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

Re: Ilośc wyświetlanych tabel

Albo i może jeszcze prościej da się to zorbić:


jak mam ten kod:

<?
$fd1 = fopen("plik.txt","rw");
$wiersz1 = 0;
while(!feof($fd1))

{
$dane1[$wiersz1] = substr(fgets($fd1,1024),6,11);

$wiersz1++;
}

echo $dane1[28];

?>

to poprostu zrobic tak żeby te 28 wzrastało do tylu jaką liczbę podałem.
coś w stylu 28++??


dawid

Offline

 

#6  2007-07-20 09:52:51

  ponury_kostek - Użytkownik

ponury_kostek
Użytkownik
Skąd: Wałbrzych
Zarejestrowany: 2007-01-02
Serwis

Re: Ilośc wyświetlanych tabel

Kod:

<?
$fd1 = fopen("plik.txt","r");
$wiersz1 = 0;
while(!feof($fd1))

{
$dane1[$wiersz1] = substr(fgets($fd1,1024),6,11);

$wiersz1++;
}

for($a = 28; $a < $a + $ile; $a++)
echo $dane[$a];

?>

Offline

 

#7  2007-07-20 10:00:03

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

Re: Ilośc wyświetlanych tabel

No a jaką wartość ma $ile?? ja próbowałem:

for($p=28; $p< 60; $p+1)
{
echo $dane1[$p++];
}

liczba 60 jest przypadkowa tam bym zaciągnął wpisaną z ręki liczbę.
Tyle tylko że kod mi wyswietli co linie w góre ale w jednym polu w jednej tabeli wyswietli wszystko no i w każdej tabeli to samo


dawid

Offline

 

#8  2007-07-20 10:20:19

  ponury_kostek - Użytkownik

ponury_kostek
Użytkownik
Skąd: Wałbrzych
Zarejestrowany: 2007-01-02
Serwis

Re: Ilośc wyświetlanych tabel

$ile czyli ile wierszy ma Ci wyswietlic, np.: $ile = 6; to wyswietli Ci od 28 do 33.

Offline

 

#9  2007-07-20 10:42:11

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

Re: Ilośc wyświetlanych tabel

no i tak niewyswietla! pokazuje to samo co wcześniej. Ale i tak mimo to on to powieli w jednej tabeli w reszcie wrzuci to samo daltego chyba by trzebabyło wrzucić tą ilośc tabeli do pliku i dopiero ten plik modyfikować chyba że ktoś zna funkcje którą można to prościej zrobić


dawid

Offline

 

#10  2007-07-20 11:27:43

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

Re: Ilośc wyświetlanych tabel

mam jeszcze takie pytanie odnośnie tego skryptu:

mam kod:

<?


$dana = $_GET['numer'];

for($i=0; $i< $dana; $i = $i+1)
$test = include('table.php');
{
    $test;
}

$file = "text.php";
$fp = fopen($file, "a");
fwrite($fp, $test);
fclose($fp);


?>

kod wyswietla mi tabele tyle razy jaką wpisze liczbę. I ok!
ale chciałem efekt wrzucić do pliku text.php

po wykonaniu skryptu w pliku text.php pojawiają mi sie jedynki -> 1
po kolejnym wykonaniu 11 itd.
jak zawartość wrzucic do pliku?? czyli po podaniu np 7 w pliku text.php będe mieć kod table.php razy 7 ??


dawid

Offline

 

#11  2007-07-20 12:14:03

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: Ilośc wyświetlanych tabel

Ja (i zapewne wielu forumowiczów) chciałoby ci pomóc, ale nie mam pojęcia, co chcesz osiągnąć. Gdybyś mógł wytłumaczyć od początku jak wygląda tabela w bazie danych, co chcesz wyświetlić w pierwszej, drugiej itd. tabelce na stonie i jaka ma być ich struktura, czy musisz korzystać z gotowych skryptów, a jeśli tak, to co one dostają na wejściu i co dają na wyjściu. Gdybyś też spróbował nie umieszczać przykładowego kodu (bo w przypadku, gdy obrałeś zły kierunek, będzie tylko przeszkadzał), a później jeszcze przeczytał i poprawił to, co napisałeś, na pewno jakieś rozwiązanie wspólnymi siłami byśmy znaleźli.

Offline

 

#12  2007-07-24 08:27:56

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

Re: Ilośc wyświetlanych tabel

Sory za opóżnienie w odpowiedzi. No wiec tak chodzi mi o coś takiego:
(tylko właśnie niewiem może to żle przemyślałem)

mam trzy pliki

ksi1.php
one.php
for.php

wyglądają tak:

ksi1.php:

</table>
<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=10 WIDTH=680>
<tr bgcolor="gainsboro"><td ALIGN=left p style="font-size:8"><b>nazwa </B></font></td>
</table>

<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=15 WIDTH=680>
<tr ><td ALIGN=left p style="font-size:14"><b> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp

<?
$fd1 = fopen("/var/www/apache2-default/plik.txt","rw");
$wiersz1 = 0;
while(!feof($fd1))

{
  $dane1[$wiersz1] = substr(fgets($fd1,1024),9,40);

  $wiersz1++;
}

echo $dane1[5];

?>

</B></font></td>
</table>

<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=10 WIDTH=680>
<tr bgcolor="gainsboro"><td ALIGN=left p style="font-size:8"><b>nazwa2  </B></font></td>
</table>

<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=15 WIDTH=680>
<tr ><td ALIGN=left p style="font-size:14"><b> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp -</B></font></td>
</table>

<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=10 WIDTH=680>
<tr bgcolor="gainsboro"><td ALIGN=left p style="font-size:8"><b>tytuł</B></font></td>
</table>

<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=15 WIDTH=680>
<tr ><td ALIGN=left p style="font-size:14"><b> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp tekst -

<?
$fd1 = fopen("/var/www/apache2-default/plik.txt","rw");
$wiersz1 = 0;
while(!feof($fd1))

{
  $dane1[$wiersz1] = substr(fgets($fd1,1024),6,11);

  $wiersz1++;
}


echo $dane1[28];

?>



</B></font></td>
</table>

<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=10 WIDTH=680>
<tr bgcolor="gainsboro"><td ALIGN=left p style="font-size:8"><b>tytułem cd.</B></font></td>
</table>

<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=15 WIDTH=680>
<tr ><td ALIGN=left p style="font-size:14"><b> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp -</B></font></td>
</table>

<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=10 WIDTH=680>
<tr bgcolor="gainsboro"><td ALIGN=left p style="font-size:6"><b></B></font></td>
</table>


<table border=1 bordercolor="#900100" cellpadding=1 cellspacing=0 HEIGHT=70 WIDTH=500>
<tr><td ALIGN=center WIDTH=300 valign="bottom" p style="font-size:8"><b> data i podpis</B></font></td>
<td ALIGN=left WIDTH=100 valign="top" p style="font-size:8"><b> Opłata:</B> <br> <br><br>
<ALIGN=center p style="font-size:24"><b> &nbsp/b></font>
<td ALIGN=center WIDTH=100 type="circle" p style="font-size:8"></font></td>

</table>

jak widać są to tabele do których zaciągam sobie dane z pliku -> plik.txt

drugi plik :

one.php

<form name="formularz" action="for.php" method="get">
wprowadz ilość:
<input type="text" name="numer" size="10"><br>
<br><center><input type="submit" value="wydrukuj na ekran" onclick="document.formularz.action='for.php';document.formularz.submit();"/></center>


tutaj jak widać jest skrypt dzięki któremu wpisuje liczbę do formularza i wysyłam ją do pliku for.php który wygląda następująco:

<?

$dana = $_GET['numer'];

for($i=0; $i< $dana; $i = $i+1)
$test = include('ksi1.php');
{
    $test;
}

?>


ja widać po wpisaniu jakieśc liczby w pliku one.php np -> 7 za pomocą pliku for.php zawartość ksi1.php wyświetli mi się 7 razy na ekranie przeglądarki

No i OK! Wyświetli mi się 7 razy ale z danymi z jednej i tej samej lini z pliku -> plik.txt. A mi chodzi o to żeby w każdej tabeli wyświetlał mi linie nieżej.

Co jest istotne: jak jest kod w pliku np: ksi1.php:


<?
$fd1 = fopen("/var/www/apache2-default/plik.txt","rw");
$wiersz1 = 0;
while(!feof($fd1))

{
  $dane1[$wiersz1] = substr(fgets($fd1,1024),6,11);

  $wiersz1++;
}


echo $dane1[28];

?>

to wygląda to tak że
ta część --->  $dane1[$wiersz1] = substr(fgets($fd1,1024),6,11);
będzie zawsze taka sama będzie miała 6,11

chciałem żeby zmieniało sie tylko --> echo $dane1[28];


czyli wyswietlam plik one.php -> wpisuje liczbę 7 zatwierdzam przyciskiem
wyświetla mi się plik for.php ( który zaciąga 7 razy dane z ksi1.php) i w pierszej tabeli mam dane z :

echo $dane1[28];

w drugiej:

echo $dane1[29];

w trzeciej:

echo $dane1[30];

itd -> w zależności od liczby podanej w one.php
Był bym wdzięczny gdyby ktoś był w stanie mi pomóc.


dawid

Offline

 

#13  2007-07-26 01:47:12

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: Ilośc wyświetlanych tabel

Moje pierwsze wrażenie po zobaczeniu kodu? Wolę tego nie wspominać. Porywasz się na PHP, a powinieneś przeczytać jakiś dobry kurs HTML i CSS. Mogę Ci coś podpowiedzieć: tabela może mieć więcej niż jedną komórkę. Ba! Może mieć nawet wiele wierszy, a w tych wierszach wiele komórek. Do określania wyglądu strony w przyszłości postaraj się stosować CSS. W tym przypadku HTML prawdopodobnie uda ci się ograniczyć do znaczników określających tabele.

Twój problem nie jest trudny, ale żeby dać Ci gotowe rozwiązanie, musiałbym przepisac wszystko na nowo, a to w końcu twoje zadanie. Dopóki więc nie poprawisz hypertekstu, muszę się ograniczyć do podpowiedzi dotyczącej PHP.

Mianowicie, jeśli inkludujesz plik, to kod w pliku inkludowanym ma dostęp do zmiennych zdefiniowanych w pliku inkludującym. Popatrz teraz na fragment:

Kod:

for($i=0; $i< $dana; $i = $i+1) 
$test = include('ksi1.php');

Pochodzi on z pliku inkludującego. Używasz tam zmiennej $i, służącej do odliczania dołączanych tabelek. Dobrze byłoby ją wykorzystać do zdefiniowania, który wiersz z pliku ma zawierać dołączana tabelka. Kod odpowiadający za to:

Kod:

echo $dane1[28];

Biorąc pod uwagę, że odliczanie zmienną $i rozpoczynasz od zera, linię tą zmień na:

Kod:

echo $dane1[$i + 28];

Dzięki temu prawdopodobnie uzyskasz to, co chciałeś.

Nie mogę Ci dać jednak żadnej gwarancji, że to będzie działać. Naprawdę, trudno się zorientować w twoim kodzie. Wiele musisz tam poprawić, a najlepiej przepisz na nowo wszystko. Zrób to dopiero po przerobieniu kursu HTML, kursu CSS i po przeczytaniu dobrej książki o PHP. Gdy już poznasz trochę teorii podpartej dużą dawką praktyki, wiele rzeczy, które do tej pory sprawiały Ci problemy będą po prostu banalne. Łatwiej będzie także uzyskać pomoc, bo czym innym jest poprawienie kilku linijek kodu, a czym innym napisanie wszystkiego od podstaw, a tak jest w tym przypadku.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)