Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]koszyk zakupów
Forum PHP.pl > Forum > Przedszkole
john_doe
Witam, piszę koszyk zakupów i mam mały problem. Do sesji dodaje sobie id produktu. Chciałbym dodać także ilość w postaci domyślnej wartości = 1.

  1. <?php
  2.  
  3. include('connect.php');
  4. include('functions.php');
  5.  
  6. print '<h1>Zawartosc koszyka</h2>';
  7.  
  8.  
  9.  
  10. $checkExistance = findValue($_GET['productId'], $_SESSION['koszyk']); // sprawdzam czy element jest juz w koszyku
  11.  
  12.  
  13. if( $checkExistance == 1 )
  14. {
  15.    print 'TOWAR JEST JUZ w KOSZU <br />';
  16. }elseif(isSet($_GET['productId'])) {
  17.  
  18.        $_SESSION['koszyk'][$_SESSION['id']] = $_GET['productId']; // dodaje id produktu do sesji
  19. //$_SESSION['koszyk'][$_SESSION['id']] = array('id' => $_GET['productId']); // tutaj moja proba innego podejscia
  20.  
  21.  
  22.        $_SESSION['id']++;    
  23. }
  24.  
  25.  
  26. print '<a href="shop.php">Enter to my shop centre</a><br /><br />';
  27. print '<a href="dump.php">Dump</a><br /><br />';
  28.  
  29.  
  30.  
  31.  
  32. if ( count($_SESSION['koszyk'] ) > 0)
  33. {
  34.  
  35.        for ($i = 0 ; $i <= count($_SESSION['koszyk'])-1 ; $i++)
  36.        {
  37.    //            print '<h2>'.$i.'</h2>'; //JUST FOR DEBUG        
  38.            $basketQuery  = 'SELECT product_id, product_name, product_price, product_volume FROM products WHERE product_id = ' . $_SESSION['koszyk'][$i];
  39.            
  40.            $wynik = mysql_query( $basketQuery );
  41.            
  42.            while ( $wiersz = mysql_fetch_array($wynik) )
  43.            {
  44.                print $wiersz[0] . ' | ' . $wiersz[1] . ' | ' . $wiersz[2] . ' | ' . $wiersz[3] . ' | sztuk: 1';
  45.                print '<br />';
  46.                
  47.            }    
  48. //        print $basketQuery.'<br />';//JUST FOR DEBUG
  49.        }
  50. } else print 'koszyk pusty';
  51.  
  52.  
  53. //print var_dump($_SESSION);
  54. ?>


krótko mówiąc wywalam się na tablicy wielowymiarowe \\\\$_SESSION

POMOCY ;]

krystiano
Wicepsik
Może też przysyłaj przez GET liczbę sztuk?
john_doe
to nawet by nie trzeba GETa.

kombinuje tak:
  1. <?php
  2. $_SESSION['koszyk'][$_SESSION['id']] = array('id' => $_GET['productId'], 'ile' => 1);
  3. ?>


ale potem mam problem z wyświetleniem koszyka.
Crozin
No a jaki to problem?
  1. <?php foreach($_SESSION['koszyk'] as $product){
  2.  echo $product['id']
  3. }
  4. ?>
john_doe
no tak Crozin ale zobacz jak ja wyświetlam koszyk.
patrze jaki id produktu mam w sesji i wyswietlam resztę z bazki
i mi się psuje gdy dodatkowo chce wyświetlić to wartość domyślną sztuk.

następnym krokiem będzie edycja koszyka co do ilości
dr_bonzo
To zmien sposob wyswietlania
Np. tak
  1. <?php
  2. foreach ( $_SESSION as $cartItem )
  3. {
  4.     $id = $cartItem['id'];
  5.     $quantity = $cartItem['quantity'];
  6.  
  7.     $sql = "SELECT products.*, $quantity AS quantity FROM products WHERE id = " . $id . " // pamietaj o eskejpowaniu
  8.  
  9.     mysql_query();
  10.  
  11.     // w odpowiedzi max jeden wiersz
  12.     if ( $row == mysql_fetch_assoc() )
  13.    {
  14.        echo ( "$row[product_name] $row[quantity]<br />");
  15.     }
  16. }
  17. ?>


Ale lepiej info o koszyku w bazie trzymac, wtedy robisz wszystko 1 SQLka z joinem
john_doe
spoko dr_bonzo.. teraz jeszcze muszę zmodyfikować funkcję sprawdzającą czy jest produkt jest już w koszyku.
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.