Cytat(misty @ 25.02.2007, 12:20:54 )

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:
<?php
$wynik=pg_query($polaczenie, $zapytanie); {
foreach ($row as $data)
$_SESSION['data']=$data;
echo ''.$_SESSION['data'].''; //i tu mi sie pojawi caly ciag wynikow }
?>
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:
<?php
{
print("<TR><TD>Tytul to: $row[0]</TD></TR>"); print("<TR><TD>Liczba plyt to: $row[1]</TD></TR>"); print("<TR><TD>Zestaw plyt to: $row[2]</TD></TR>"); print("<TR><TD>Dlugosc filmu to: $row[3]</TD></TR>");
}
?>
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

Po prostu kod z pliku2.php (a dokladniej session_start()) wystepuje po wyslaniu do przegladarki jakiegos znacznika HTML. Miej pewnosc, ze kod php w tym pliku wystepuje przed wszelakim kodem w HTMLu. Jesli nie masz w tym pliku kodu HTML to czesto problemem jest tez kodowanie (przegladarka cos tam przesyla). No i na koniec poczytaj tutaj:
http://pl2.php.net/session_start The truth is out there.