Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]koszyk zakupów
john_doe
post 27.06.2009, 12:19:33
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


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

Ten post edytował john_doe 27.06.2009, 12:20:26
Go to the top of the page
+Quote Post
Wicepsik
post 27.06.2009, 12:34:58
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


Może też przysyłaj przez GET liczbę sztuk?

Ten post edytował Wicepsik 27.06.2009, 12:35:31


--------------------
Go to the top of the page
+Quote Post
john_doe
post 27.06.2009, 12:41:06
Post #3





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


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.
Go to the top of the page
+Quote Post
Crozin
post 27.06.2009, 12:46:04
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


No a jaki to problem?
  1. <?php foreach($_SESSION['koszyk'] as $product){
  2.  echo $product['id']
  3. }
  4. ?>
Go to the top of the page
+Quote Post
john_doe
post 27.06.2009, 12:53:02
Post #5





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


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
Go to the top of the page
+Quote Post
dr_bonzo
post 27.06.2009, 13:32:44
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


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

Ten post edytował dr_bonzo 27.06.2009, 13:32:54


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
john_doe
post 27.06.2009, 13:58:40
Post #7





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


spoko dr_bonzo.. teraz jeszcze muszę zmodyfikować funkcję sprawdzającą czy jest produkt jest już w koszyku.
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 Wersja Lo-Fi Aktualny czas: 5.07.2025 - 07:29