Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problemy z tabelami w sesji, funkcje unsset
gitbejbe
post
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

Ostrzeżenie: (0%)
-----


Witam.

To mój pierwszy post i zarejestrowałem z tej przykrej przyczyny, ze stoję w miejscu przy robieniu koszyka, a dokładniej - przy usuwaniu dodanych w sesji zakupów.

  1. <input type="submit" name="submit" value="'.$row['id'].'"style="margin-left:10px;"/> <!-- value posiada wartość ID produktu w bazie danych-->


  1. if(isset($_POST['submit']))
  2. {
  3. $z1=$_POST['submit'];
  4. $koszyk = "SELECT * FROM marka2 WHERE id='$z1'";
  5. $result1 = mysql_query($koszyk) or die (mysql_error());
  6. $dane = mysql_fetch_array($result1);
  7. extract($dane); // ^pobiera dane z bazy pod danym id produktu.
  8.  
  9. if(!isset($_SESSION['koszyk'][$_SESSION['idd']]))
  10. {
  11. if(array_search($dane['naglowek']."|".$dane['cena']."|".$_SESSION['idd'].'', $_SESSION['koszyk']) === false) //Blokuje powtarzanie tej samej sesji
  12. {
  13. $_SESSION['koszyk'][$_SESSION['idd']]=$dane['naglowek']."|".$dane['cena']."|''; //dodaje sesje z danymi z bazdy MySQL
  14. $_SESSION['idd']++;
  15. }
  16. }

No i tutaj działa wszystko jak trzeba. Sesje tworzą się po mojej myśli. Schody zaczeły się w głupim i pewnie banalnym miejscu. Mianowicie przy odwołaniu się do usunięcia konkretnej tabeli z sesji.
  1. if(isset($_SESSION['idd']))
  2. {
  3. foreach($_SESSION['koszyk'] as $value)
  4. {
  5. $wynik = explode("|", $value);
  6. echo'<li class="koszyk">nazwa produktu: <b>'.$wynik[0].'</b> - cena: <b>'.$wynik[1].'</b> //wyświetla wszystkie tabele
  7. <input type="submit" name="usun1" value="'.$value.'"> <br></li>'; // input posiada wartość całej tabeli w sesji
  8. }
  9. }

No i teraz gwiazda tego tematu: funkcja UNNSET
  1. if(isset($_POST['usun1']))
  2. {
  3. unset($_SESSION['koszyk'][1]);
  4. }

Efekt tego skryptu jest taki, ze po wykasowaniu wszystkich sesji i dodaniu na nowo paru kolejnych produktów, mogę usunąć tylko jeden z nich. Każdy kolejny po naciśnieciu submita ani drgnie aż do ponownego wyczyszczenia całej sesji. Próbowałem googlowach i tworzyć coś na wzór rzeczy które znalazłem, ale żadna z nich nie działa. Finalnie przedstawiłem tą o to wersje, bo jest chyba najbardziej przejrzysta. Mało ogarniam programowanie w PHP, ale staram się naucz czegoś nowego, a akurat teraz w dodatku dostałem zlecenie zrobienia prostego sklepu. Byłbym bardzo wdzięczny za pomoc. Pozdrawiam

Ten post edytował gitbejbe 27.08.2012, 19:43:20
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 02:06