Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php\MySQL] Usuwanie danych z sesji
Forum PHP.pl > Forum > PHP
Quest-dd
Witam!!!
Mam taki kod:
  1. <? 
  2. include_once("funkcje.php"); 
  3. lacz_bd();
  4. echo "<center><h2>Oto wyniki:</H2></CENTER>"; 
  5. $ile = 1;//ile rekordów ma być wyświetlanych 
  6. if(!$p) $p = 0;
  7. // zabezpieczenie przed nienumerycznymi wartosciami
  8. $p = (int)$p;  
  9. $ile = (int)$ile;//przypisanie im wartości liczbowych 
  10. //zapytanie = wartości z formularza
  11. $zapytanie1 = "select * from katalog"; 
  12. if ($nazwa<>""||$adres<>""||$wojewodztwo<>""||$branza<>""||$opis<>""){ 
  13.  $zapytanie1=$zapytanie1." where"; 
  14.  if ($nazwa<>"") $zapytanie1=$zapytanie1." nazwa like '%$nazwa%' and"; 
  15.  if ($adres<>"") $zapytanie1=$zapytanie1." adres like '%$adres%' and"; 
  16.  if ($wojewodztwo<>"") $zapytanie1=$zapytanie1." wojewodztwo like '%$wojewodztwo%' and"; 
  17.  if ($branza<>"") $zapytanie1=$zapytanie1." branza like '%$branza%' and"; 
  18.  if ($opis<>"") $zapytanie1=$zapytanie1." opis like '%$opis%' and"; 
  19.  $zapytanie1 = substr($zapytanie1, 0, -3);} 
  20.  $zapytanie1=$zapytanie1." LIMIT $p, $ile"; 
  21. echo $zapytanie1; //wyswietlam liczbe wyników 
  22. echo "<br>"; 
  23.  
  24. /*zliczam wszystkie rekordy*/ 
  25.  
  26. $zapytanie = "select * from katalog"; 
  27. if ($nazwa<>""||$adres<>""||$wojewodztwo<>""||$branza<>""||$opis<>""){ 
  28.  $zapytanie=$zapytanie." where"; 
  29.  if ($nazwa<>"") $zapytanie=$zapytanie." nazwa like '%$nazwa%' and"; 
  30.  if ($adres<>"") $zapytanie=$zapytanie." adres like '%$adres%' and"; 
  31.  if ($wojewodztwo<>"") $zapytanie=$zapytanie." wojewodztwo like '%$wojewodztwo%' and"; 
  32.  if ($branza<>"") $zapytanie=$zapytanie." branza like '%$branza%' and"; 
  33.  if ($opis<>"") $zapytanie=$zapytanie." opis like '%$opis%' and"; 
  34.  $zapytanie= substr($zapytanie, 0, -3); 
  35. } 
  36. $wynik1 =mysql_num_rows(mysql_query($zapytanie)); 
  37. echo $wynik1; //wyswietlam liczbe wyników 
  38. echo "<br>"; 
  39.  
  40. //wyświetlanie rekordów 
  41.  $wynik =mysql_query($zapytanie1); 
  42. if (!$wynik){ 
  43. echo "Błąd. Połączenie nie powiodło się!"; 
  44. exit; 
  45.  } 
  46. session_register('zapytanie'); 
  47. session_register('wynik'); 
  48. session_register('znalezionych'); 
  49. session_register('zapytanie1'); 
  50. session_register('nazwa'); 
  51. session_register('adres'); 
  52. session_register('wojewodztwo'); 
  53. session_register('branza'); 
  54. session_register('opis'); 
  55.  echo "<br>"; 
  56. echo "strona: "; 
  57.  for($a=0;$a<ceil($wynik1/$ile);$a++) { 
  58. echo '<a href="'.$PHP_SELF.'?p='.($a*$ile).'">'.($a+1).'</a> '; //wyswietlenie linków do nastepnych stron 
  59. }
  60.  echo "<br>"; 
  61.  $znalezionych=mysql_num_rows($wynik); 
  62.  echo "<table border=1><tr bgcolor=lightgreen>"; 
  63.  echo "<th>Nazwa</TH><th>Logo</TH>"; 
  64.  echo "<th>Adres</TH><th>Województwo</TH>"; 
  65.  echo "<th>Branża</TH><th>Opis</TH></tr>"; 
  66. for ($i=0; $i<$znalezionych; $i++){ 
  67.  $wiersz= mysql_fetch_array($wynik); 
  68.  echo "<tr><td><a HREF="".$wiersz["Odnosnik"]."">".$wiersz["Nazwa"]."</a></td>"; 
  69.  echo "<td><IMG SRC=".$wiersz["Logo"]."></td>"; 
  70.  echo "<td>".$wiersz["Adres"]."</td>"; 
  71.  echo "<td>".$wiersz["wojewodztwo"]."</td>"; 
  72.  echo "<td>".$wiersz["branza"]."</td>"; 
  73.  echo "<td>".$wiersz["opis"]."</td></tr>"; 
  74.  } 
  75.  echo "</table>"; 
  76.  ?>

Pobieram dane z formularza, wysyłam zapytanie do bazy, sortuje te dane, zapisuje do sesji, klikam na inne podstrony i wszystko jest OK. Ale nie wiem jak usunąc wszystkie zapamiętane dane o sesji, gdy już mi nie są potrzebne, tzn. przejdę do innej podstrony lub szukam coś innego itp. Gdy ponownie wypełnie formularz wyszukiwarki nadal wyświetlane są rekordy ze starej sesji. Próbowałem z session_destroy(), ale to nie dawało oczekiwanych rezultatów (no chyba, że wstawiałem to w nieodpowiednim momencie). Gdy dodawałem tą funkcję to następne podstrony (z sortowania) wyświetlały wszystkie rekordy (bez warunków zapytania). Jak rozwiązać ten problem?? Jaki kod użyć i gdzie go zamieścić?? Proszę o pomoc. Z góry dzieki.
nospor
sesja to jest zwykla tablica i usuwasz z niej tak jak z tablicy: unset($_SESSION['kluczdousuniecia'])

ps: nie uzywaj session_register. nie dosc ze juz wychodzi z uzycia, to jest jeszcze nie bezpieczne. jak chcesz cos do sesji przypisac to tak jak do tablicy: $_SESSION['klucz'] = 'wartosc'
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.