Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]php koszyk internetowy, php - sesje problem
plej
post
Post #1





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Cześć mam taki kod
  1. if((@$_POST['add_pr_v']) && (@$_POST['add_pr_v'] == "true")){
  2. $ilosc = intval($_POST['ile']);
  3. $id = intval($_POST['id']);
  4. function dodaj($item) {
  5. $_SESSION['koszyk'][] = $item;
  6. $t = @$_POST['t'];
  7. $id = intval($_POST['id']);
  8. ?>
  9. <script type="text/javascript">
  10. //<![CDATA[
  11. alert('Produkt został dodany do koszyka.')
  12. window.location ="produkty.php?a=v&i=<?php echo $id."&t=".$t; ?>";
  13. //]]>
  14. </script>
  15. <?php
  16. }
  17.  
  18. $item = array('id'=>$id, 'ilosc'=>$ilosc);
  19. dodaj($item);
  20. }


Bawie się z koszykiem internetowy. I wszystko działa ale jak już dodamy do koszyka dwa razy ten sam produkt to w koszyku wyświetla dwa razy ten sam produkt, a nie połaczone. Próbowałem już to zrobić męczyłem się ale coś mi nie idzie. Jak to zrobić? że jak dodamy jeszcze raz ten sam produkt to go w powyższym kodzie połączy w jeden produkt?

Jest to jeszcze wzór koszyka potem pod oop przerobie ale narazie musze ten problem rozwiązać. Coś mi nie idzie z tym niestety.

Z góry dzieki.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie
$_SESSION['koszyk'][] = $item;
a:
$_SESSION['koszyk'][$item['id']] = $item;

Dzieki temu kazda pozycja bedzie miala swoje wlasne ID i bez problemu bedziesz mogl sprawdzic czy pozycja juz jest czy nie i albo połączyc albo poprostu dodac


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
plej
post
Post #3





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Dzięki. Jak by coś dalej mi nie wychodzilo to napisze.

Udało się.
Daje kod może komuś się przyda lub i też ma problem z tym:

  1. if((@$_POST['add_pr_v']) && (@$_POST['add_pr_v'] == "true")){
  2. $ilosc = intval($_POST['ile']);
  3. $id = intval($_POST['id']);
  4. function dodaj($item) {
  5. $_SESSION['koszyk'][$item['id']] = $item;
  6. $t = @$_POST['t'];
  7. $id = intval($_POST['id']);
  8. ?>
  9. <script type="text/javascript">
  10. //<![CDATA[
  11. alert('Produkt został dodany do koszyka.')
  12. window.location ="produkty.php?a=v&i=<?php echo $id."&t=".$t; ?>";
  13. //]]>
  14. </script>
  15. <?php
  16. }
  17.  
  18. if(isset($_SESSION['koszyk'][$id])){
  19. $ile_jest = $_SESSION['koszyk'][$id]['ilosc'];
  20. $nowa_ilosc = $ile_jest + $ilosc;
  21. $_SESSION['koszyk'][$id]['ilosc'] = $nowa_ilosc;
  22. }else{
  23. $item = array('id'=>$id, 'ilosc'=>$ilosc);
  24. dodaj($item);
  25. }
  26. }


Wystarczy tylko przerobić na swoje i zabezpieczyć.

Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Sprawdzanie czy cos jest juz w koszyku i ewnetualne dodawania powinno byc w funkcji dodaj a nie przed

poza tym nie:
$ile_jest = $_SESSION['koszyk'][$id]['ilosc'];
$nowa_ilosc = $ile_jest + $ilosc;
$_SESSION['koszyk'][$id]['ilosc'] = $nowa_ilosc;

a poprostu
$_SESSION['koszyk'][$id]['ilosc'] += $ilosc;


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
plej
post
Post #5





Grupa: Zarejestrowani
Postów: 264
Pomógł: 11
Dołączył: 9.05.2011
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Ok poprawione ; p



  1. if((@$_POST['add_pr_v']) && (@$_POST['add_pr_v'] == "true")){
  2. $ilosc = intval($_POST['ile']);
  3. $id = intval($_POST['id']);
  4. function dodaj($item) {
  5. if(isset($_SESSION['koszyk'][$item['id']])){
  6. $_SESSION['koszyk'][$item['id']]['ilosc'] += $item['ilosc'];
  7. }else{
  8. $_SESSION['koszyk'][$item['id']] = $item;
  9. }
  10. $t = @$_POST['t'];
  11. $id = intval($_POST['id']);
  12. ?>
  13. <script type="text/javascript">
  14. //<![CDATA[
  15. alert('Produkt został dodany do koszyka.')
  16. window.location ="produkty.php?a=v&i=<?php echo $id."&t=".$t; ?>";
  17. //]]>
  18. </script>
  19. <?php
  20. }
  21. $item = array('id'=>$id, 'ilosc'=>$ilosc);
  22. dodaj($item);
  23. }
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 20:35