![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
witam
problem mam pewnie dosc banalny, przejrzalam forum w poszukiwaniu podobnych watkow ale nadal nie do konca wiem jak to ugryzc. problem wyglada tak: mam prosta stronke na ktorej uzytkownik moze sobie przegladac rozne rzeczy z bazy danych. z baza lacze sie i wyswietlam dane przy pomocy php. dane ukazuja sie w tablicach i uzytkownik powinien miec mozliwosc ich wydruku. po kliknieciu na 'drukuj' otwiera sie nowe okno w ktorym powinny ukazac sie tabele z danymi, bez tych wszystkich reklam itd, czyli gotowe do druku. pytanie moje jak zrobic by w tym formularzu (xhtml) pokazywaly sie dane ktore wczesniej pobieralam przy pomocy php? tzn bez zbednego wklejania select z php do tego mojego formularza gotowego do wydruku? czyli jak przekazac dane pobrane z bazy przez plik test.php do test.html? pzdr! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
a nie prościej użyc do tego CSSa? i sobie wygenerować plik do druku tylko żeby był niewidoczny?
@screen { .elementy{display: none} } @print { .elementy{display: block} } rzecyz print są widziane tylko przez drukarke -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
ale wlasnie plik ma byc widoczny. uzytkownik ma sobie zobaczyc jeszcze przed wydrukiem co drukuje..
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 155 Pomógł: 17 Dołączył: 13.03.2006 Skąd: Jaworze Ostrzeżenie: (0%) ![]() ![]() |
czesc
pobirajac 'cos' z bazy danych dolacz to do $_SESSION['cos'] i przy kazdym wywolaniu drukuj na nowej stronie odwolaj sie do tablicy sesji pobierz czyste dane wrzuc je w formularz i drukuj |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
poczytalam co nieco na ten temat, probowalam wykorzystac zarowno session_register() jak i $_SESSION[] tylko nadal jest nie tak. tzn, na przykladzie:
pierwszy plik:
2gi plik, w ktorym jest odwolanie do 1szego:
wynikiem dzialania 2giego pliku bedzie wyswietlenie na ekranie: bbaabb, czyli dziala poprawnie. zalozmy teraz, ze w moim $_SESSION['data'] bede przechowywac dane pobrane z bazy, tzn: pierwszy plik:
w 2gim pliku nic nie zmieniam: 2gi plik, w ktorym jest odwolanie do 1szego:
to w tym przypadku wynikiem dzialania drugiego pliku bedzie wyswietlenie na ekranie: bbbb.. czemu? jak to zrobic zeby przekazac dane z bazy do tego drugiego pliku? i druga sprawa, jak sie pozbyc tego ze w plik2.php pojawia sie Kod Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/htdocs/druk.php:5) in /var/www/htdocs/druk.php on line 30 przejrzalam watki na ten temat na forum ale nie bardzo znalazlam rozwiazanie.. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
zalozmy teraz, ze w moim $_SESSION['data'] bede przechowywac dane pobrane z bazy, tzn: pierwszy plik:
2 porady: - zobacz w 1pliku czy do zmiennej w ogole jest cos przypisywane - najlepiej w linijce z przypisywaniem do $_SESSION przypisz zapytanie bezposrednio do bazy, czyli $_SESSION['data'] = mysql_query(zmienna, link). -------------------- "Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog KulturalnyChlebik |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
pierwsze co zrobilam to sprawdzilam czy w plik1.php jest cos przypisywane do zmiennej i tak, wsjo jest jak nalezy.
co do drugiej czesci Twojego posta, zrobilam jak poradziles, czyli w plik1.php wyglada to mniej wiecej tak:
no i plik1.php wyswietla jak powinien, czyli wynikiem bedzie to co siedzi w $data-czyli 'cos' pobrane z 'cos' tak jak w zapytaniu. a gdy w plik2.php odwolam sie do plik1.php i probuje wyswietlic $_SESSION['data'] (lub tez probowalam $data) to otrzymuje takie cos: Warning: pg_query() [function.pg-query]: Query failed: in /var/www/htdocs/plik1.php on line 52 Warning: pg_fetch_row() expects parameter 1 to be resource, boolean given in /var/www/htdocs/plik1.php on line 55 " title="Zobacz w manualu PHP" target="_manual i nie wiem czemu..:/ mam jeszcze takie jedno male pytanie, mianowicie czemu include przekazuje mi cala strone? tzn. mamy plik1.php i plik2.php. i jak w plik2.php dam inculde("plik1.php") to on mi przepisuje cala strone plik1.php..wszystkie dane, tla etc.. a ja bym chciala np tylko z niektorych zmiennych z plik1.php korzystac.. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
mam jeszcze takie jedno male pytanie, mianowicie czemu include przekazuje mi cala strone? tzn. mamy plik1.php i plik2.php. i jak w plik2.php dam inculde("plik1.php") to on mi przepisuje cala strone plik1.php..wszystkie dane, tla etc.. a ja bym chciala np tylko z niektorych zmiennych z plik1.php korzystac.. Zaczne moze od tego - require oraz include sluza wlasnie do przekazywania calego pliku. Koniec, kropka. Natomiast do przerzucania miedzy stronami wartosci zmiennych sluzy metoda GET (w przypadku mieszania HTMLa z PHP), albo obsluga sesji (tak jak u Ciebie). Cytat pierwsze co zrobilam to sprawdzilam czy w plik1.php jest cos przypisywane do zmiennej i tak, wsjo jest jak nalezy. No i dobrze. Cytat a gdy w plik2.php odwolam sie do plik1.php i probuje wyswietlic $_SESSION['data'] (lub tez probowalam $data) w $_SESSION['data'] to 'data' to identyfikator, a nie zmienna. Przeczytaj to, co Ci napisalem wczesniej i juz powinnas zrozumiec. Do przekazywania danych miedzy plikami stosuje sie metode POST/GET (najczesciej jesli skrypt z jakiegos powodu odrzucil cookie) lub obsluge sesji. Ty wybralas sesje i uzywanie superglobalnej tablicy $_SESSION. W zwiazku z czym nie musisz dolaczac pliku do drugiego pliku - wszak przekazywana informacja znajduje sie juz w superglobalnej tablicy. Usun po prostu "include" z 2go pliku i powinno byc gites. Pamietaj rowniez, ze do supertablicy $_SESSION musi byc przypisana zmienna, a nie wskaznik do niej czy cokolwiek innego. Jesli nie to bedziem myslec dalej, bo wtedy oznacza to, ze cos szwankuje z przekazywaniem do $_SESSION (z bazy danych of corze). Miej rowniez pewnosc, ze masz wlaczone cookies. Ten post edytował chlebik 23.02.2007, 01:08:13 -------------------- "Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog KulturalnyChlebik |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
no miales racje, poszlo:)
takie jeszcze pytanie mam: bo w plik1.php do $_SESSION['data'] przesylam dane z bazy danych. i one mi sie wyswietlaja w tablece, mam petle wiec wszystko jak nalezy sie podstawia, mniej wiecej tak to wyglada:
plik2.php
w plik2.php pojawi mi sie tylko ostatnia zmienna z $_SESSION['data']. tzn jesli w plik1.php zapytanie zwroci i przypisze do $_SESSION['data'] ciag zmiennych: a, b, c, d.. to plik1.php pokaze wszystkie, a plik2.php pokaze tylko ostatni, czyli tu 'd'. wiec moje pytanie jest takie czy mozna cale tablice przekazac? czy musze zrobic jakas petle zeby sczytal 1 wartosc, przekazal do plik2.php, potem ja wywalil i sczytal nastepna i przekazal do plik2.php, itd? a druga sprawa to jak pozbyc sie tego komunikatu: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/htdocs/plik2.php:9) in /var/www/htdocs/plik2.php on line 11" title="Zobacz w manualu PHP" target="_manual poczytalam na forum co nieco, dodalam ob_start() i ob_end_flush() w obu plikach ale ten warning pojawia sie nadal. tzn pojawia sie tylko w plik2.php.. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
no miales racje, poszlo:) Grazie. Cytat takie jeszcze pytanie mam: bo w plik1.php do $_SESSION['data'] przesylam dane z bazy danych. i one mi sie wyswietlaja w tablece, mam petle wiec wszystko jak nalezy sie podstawia, mniej wiecej tak to wyglada:
Znowu wrocimy do korzeni i przeanalizujemy ten kod linijka po linijce. Na poczatku do zmiennej $wynik przypisujesz wynik dzialania funkcji pg_query (domyslam sie, ze to od PostgreSQL). Co robi ta funkcja pg_query ? Otoz pobiera ona dane z bazy, ale nie przekazuje ich bezposrednio do PHP. W tym czasie dane znajduja sie w buforze i nie sa dostepne. Trzeba te dane pobrac i stad nastepna komenda czyli funkcja pg_fetch_row. Co konkretnie robi ta funkcja? Ano pobiera te dane z bufora i przerabia je na TABLICE INDEKSOWANA LICZBAMI. Nie wiem jak wyglada tabela, z ktorej pobierasz dane, ale prawda jest taka, ze kazda kolejna komorka tej tablicy zawiera dana z kolejnego "rzedu" pobranych danych i mozna sie do niej odnosic za pomoca indeksu liczbowego. U mnie (lista filmow, ktore sa pobierane z bazy danych) ten fragment kodu (wyswietlanie danych pobranych z tabeli) wyglada tak:
Dlaczego to pisze? Po to, aby pokazac, ze nie ma sensu przkeazywac za kazdym przejsciem petli przypisania danej pobranej z bufora do supertablicy tylko po to, aby ja wypisac na ekranie. Do tego spokojnie mozesz uzyc echo "$data". Cytat w plik2.php pojawi mi sie tylko ostatnia zmienna z $_SESSION['data']. tzn jesli w plik1.php zapytanie zwroci i przypisze do $_SESSION['data'] ciag zmiennych: a, b, c, d.. to plik1.php pokaze wszystkie, a plik2.php pokaze tylko ostatni, czyli tu 'd'. wiec moje pytanie jest takie czy mozna cale tablice przekazac? czy musze zrobic jakas petle zeby sczytal 1 wartosc, przekazal do plik2.php, potem ja wywalil i sczytal nastepna i przekazal do plik2.php, itd? No nie bardzo jest jak zrobic to, co tutaj napisalas. Generalnie najlepiej zrobic to w ten sposob, ze w pliku1 stworzysz sobie tablice (albo zagniezdzona, albo zwykla) do ktorej kolejnych komorek bedziesz wsadzala kolejne wartosci zczytane z bufora (czyli musisz to przypisanie umiescic w petli while ($row=pg_fetch_row($wynik)) {.......} A juz po wyjsciu z tej petli nalezy przekazac do $_SESSION['przekazywana_tablica'] cala tablice i na nowej stronie po prostu przejsc przez nia wypisujac na ekranie kolejne komorki. Nie dziw sie, ze nie podaje kodu - jak sama dojdziesz do rozwiazania poslugujac sie wskazowkami to wiecej sie nauczysz. Wiem z autopsji ![]() Cytat a druga sprawa to jak pozbyc sie tego komunikatu: <span style="font-weight: bold;"><a href="http://pl.php.net/ Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/htdocs/plik2.php:9) in /var/www/htdocs/plik2.php on line 11" title="Zobacz w manualu PHP" target="_manual"> Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/htdocs/plik2.php:9) in /var/www/htdocs/plik2.php on line 11</a></span> poczytalam na forum co nieco, dodalam ob_start() i ob_end_flush() w obu plikach ale ten warning pojawia sie nadal. tzn pojawia sie tylko w plik2.php.. Wszystko przecie po angielskiemu napisane ![]() http://pl2.php.net/session_start The truth is out there. -------------------- "Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog KulturalnyChlebik |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 366 Pomógł: 0 Dołączył: 2.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
spox, dam juz rade:) dzieki za porady i cierpliwosc!! mozna tu jakiegos plusika postawic? bo bym Ci dodala:)
pzdr! |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 5 Dołączył: 12.09.2006 Skąd: Pruszków/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Instytucji SOG'a tutaj nie ma, ale dzieki za mile slowa. Ja tez sie ucze to i milo komus pomoc.
-------------------- "Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog KulturalnyChlebik |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 06:25 |