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>          

<?
$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>        -</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>           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>        -</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>  /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 [b]prawdopodobnie[/b] uzyskasz to, co chciałeś.

Nie mogę Ci dać jednak [b]żadnej[/b] gwarancji, że to będzie działać. Naprawdę, trudno się zorientować w twoim kodzie. Wiele musisz tam poprawić, a najlepiej przepisz na nowo [b]wszystko[/b]. Zrób to dopiero [b]po[/b] przerobieniu kursu HTML, kursu CSS i [b]po[/b] 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 [b]banalne[/b]. Ł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 ;-)

[ Generated in 0.012 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00009 SET NAMES latin2
0.00157 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.118.126.44' WHERE u.id=1
0.00453 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.118.126.44', 1732312925)
0.00052 SELECT * FROM punbb_online WHERE logged<1732312625
0.00047 SELECT topic_id FROM punbb_posts WHERE id=65567
0.00004 SELECT id FROM punbb_posts WHERE topic_id=8590 ORDER BY posted
0.00029 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=8590 AND t.moved_to IS NULL
0.00026 SELECT search_for, replace_with FROM punbb_censoring
0.00104 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=8590 ORDER BY p.id LIMIT 0,25
0.00090 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=8590
Total query time: 0.0098 s