Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z sesją
Forum PHP.pl > Forum > Przedszkole
dopal
Mam taki oto fragment kodu:
  1. $pytanie3="SELECT MAPJPO, COUNT(*) as ilosc FROM MAGPOJ, SLRPRE
  2. WHERE MAPLIS Like '%{$_POST['kod']}%' AND MASRPK = SPSRPK AND SPSRPK Like '%{$_POST['preparat']}%' AND MAPJDW Between '".$czas1."' And '".$czas2."' GROUP BY MAPJPO ORDER BY ilosc DESC";
  3.  
  4. $result3 = odbc_exec($connect, $pytanie3) or die( odbc_error());
  5.  
  6. while(odbc_fetch_row($result3))
  7.  
  8. {
  9. $odp1 = odbc_result($result3, 1);
  10. $odp2 = odbc_result($result3, 2);
  11.  
  12. {
  13. echo '<tr>
  14. <td width="15%" align="center">'.$odp1.'</td>
  15. <td width="10%" align="center""><b>'.$odp2.'</b></td>
  16. <td><a href="zest3_wyn.php?more='.$odp1.' " target=_blank>Szczegóły</a><td>
  17. </tr> ';
  18. }}
  19.  
  20. ?>

Po wykonaniu tego zapytania otrzymuję wyniki prawidłowo
Załóżmy ze w wyniku otrzymaliśmy nastepujący zwrot:

144 || 33 || .../zest3_wyn.php?more=144
433 || 22 || .../zest3_wyn.php?more=433
765 || 11 || .../zest3_wyn.php?more=765

Klikając na wygenerowany link będą wyświetlane tam dodatkowe informacje.
Póki co sprawdzam sobie na wygenerowanej stronie czy działają mi sesje.
Wszystkie potrzebne sesje działają mi ok, poza 1, którą nie wiem jak stworzyć.

Chodzi by dla każdego wyniku generowała sie odpowiednia sesja na podstawie zmiennej odp1.
Robiąc
$_SESSION['odp1']; i tworząc ją w pętli nie działało, ciągle wyświetla mi ostanią wartość czyli w tym przypadku 765.

Ma ktoś jakąs podpowiedź?
CuteOne
Chcesz wrzucić do sesji 765 elementów?questionmark.gif
dopal
Nie, to jest tylko przykład

Ilość generowanych w ten sposób sesji to będzie max 10
nospor
Cytat
Chodzi by dla każdego wyniku generowała sie odpowiednia sesja na podstawie zmiennej odp1.
Robiąc
$_SESSION['odp1']; i tworząc ją w pętli nie działało, ciągle wyświetla mi ostanią wartość czyli w tym przypadku 765.

Skoro ma to być na podstawie zmiennej $odp1 to ma być:
$_SESSION[$odp1]
a nie
$_SESSION['odp1']

Jeśli zaś nie o to ci chodzi, lub nadal ci nie działa, to pokaż cały kod włącznie z Twoimi sesjami
dopal
Cały kod działa ok, nie ma problemu z nim.
Tylko o ten fragment chodzi.
Zrobiłem tak:
  1. $pytanie3="SELECT MAPJPO, COUNT(*) as ilosc FROM MAGPOJ, SLRPRE
  2. WHERE MAPLIS Like '%{$_POST['kod']}%' AND MASRPK = SPSRPK AND SPSRPK Like '%{$_POST['preparat']}%' AND MAPJDW Between '".$czas1."' And '".$czas2."' GROUP BY MAPJPO ORDER BY ilosc DESC";
  3.  
  4. $result3 = odbc_exec($connect, $pytanie3) or die( odbc_error());
  5.  
  6. while(odbc_fetch_row($result3))
  7.  
  8. {
  9. $odp1 = odbc_result($result3, 1);
  10. $odp2 = odbc_result($result3, 2);
  11. $_SESSION[$odp1];
  12. {
  13. echo '<tr>
  14. <td width="15%" align="center">'.$odp1.'</td>
  15. <td width="10%" align="center""><b>'.$odp2.'</b></td>
  16. <td><a href="zest3_wyn.php?more='.$odp1.' " target=_blank>Szczegóły</a><td>
  17. </tr> ';
  18.  
  19. }}


Być może w złym miejscu to wstawiam?


nospor
$_SESSION[$odp1];
No ale co to ma być? Do sesji sie przypisuje wartosci a ty nie robisz nic....

To jest przypisanie:
$_SESSION[$odp1] = 'Cos tam ala ma kota bla bla';

Albo tak:
$_SESSION['odp1'] = $odp1;
Wszystko zależy co ty chcesz z tym potem robić.
dopal
Tak, też nie działa.
$_SESSION[$odp1] = $odp1;
nospor
A na czym polega to niedziałanie? Czy za każdym razem trzeba każdego z osobna o to samo pytać?
Pokaż jak ty to odbierasz, jakich oczekujesz rezultatów itp.... no nie każ nam o wszystko ciebie pokolei pytać. Nie na tym to polega

ps: no i najważniejsze pytanie: Po co ty w ogóle to do sesji zapisujesz?
dopal
Cytat(nospor @ 31.10.2012, 15:35:14 ) *
Albo tak:
$_SESSION['odp1'] = $odp1;
Wszystko zależy co ty chcesz z tym potem robić.


Może jaśniej napiszę. Na innym przykładzie.
Otrzymuję w wyniku zapytania np 3 odpowiedzi.
W 1 wierszu:
pole odp1 - np. dom ( auto, butelka itp )
pole odp2 - np. 3
pole 3 to link w którym zostaje wstawiona zmienna odp1 czyli przykład linku : zest3_wyn.php?more=dom


klikając na ten link otwiera mi się nowa strona, na której wczytuję sesje ( kilka sesji mi sie wczytuje prawidłowo )
W zależności w który link kliknę ( zest3_wyn.php?more=dom lub zest3_wyn.php?more=auto itp )
to chcę by na tej nowej stronie była wyświetlona sesja np. dom lub auto

Może teraz to trochę jest jaśniej.

na nowo otwartej stronie będę wykonywał kolejne zapytanie, w którym będzie odwołanie do zmiennej odp1.

Przykład:
Jeśli w pierwszym pliku mamy, dom, auto, butelka to zakładamy ze klikam na dom.
To w drugim pliku
w zapytaniu będę miał select * from A where pole=dom dlatego chciałem to zrobić za pomocą sesji

Analogicznie z pozostałych przypadkach.
nospor
Dalej nie rozumiem po co tu sesja.
Skoro do kolejnej strony przekazujesz wartość pobraną z bazy, to czemu na drugiej stronie nie możesz przeczytać z bazy tego co chcesz na podstawie wartości z linku? Sesja tu nie jest do niczego pottrzebna
dopal
A jak by to wyglądało?
Jak odczytać wartość z linku, a później pobrać z bazy odpowiednie dane.

Do kolejnej strony nie przekazuje wartości z bazy danych.
W bazie mam dane:
Lp, MAPJPO, inne kolumny
1. dom, drewno, (i inne dane )
2. dom, szklo, (i inne dane )
3. dom, beton, (i inne dane )
4. dom, cegla, (i inne dane )
5. auto, blacha, (i inne dane )
6. butelka, szklo, (i inne dane )
7. auto, blacha, (i inne dane )
8. butelka, szklo (i inne dane )
9. auto, blacha, (i inne dane )

W pliku pierszym w zapytaniu zliczam ile razy wystapiła dana kategoria, czyli kolumna MAPJPO
W wynikach otrzymuje, w zmiennej odp1 - wszystkie kategorie MAPJPO jakie są w bazie
czyli z przkładu powyżej otrzymamny w kolumnie odp1:
dom
butelka
auto
w kolumnie drugiej otrzymamy ile razy dany element wystepuje, czyli otrzymamy
dom, 4
butelka, 2
auto, 3

w trzeciej kolumnie tworzę link, po kliknieciu na który otworzy mi się kolejny plik w którym
będą rozpisane sczegółowo wszystkie rekordy z danej grupy.
Czyli klikam na link dom, w wyniku ktoego otrzymam rekordy wraz ze zdefiniowanymi polami,
ktore mają być wyswietlone przy danym rekordzie.

Podobne zachowanie powinno być przy klikaniu w każdą z wyświetlonych grup.

Chciałem dla każdej z wyswietlanych grup utworzyc sesję, by w drugim pliku na podstawie odpowiedniej sesji wyciągnąc odpowiednie dane z bazy.
Być może to nie jest dobry pomysł, jak sugerowal nospor,
ale nie wiem jak inaczej by to mialo wyglądać.

Może ktos podac jakiś przykład?


Ok, poradziłem sobie.
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.