Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Sumowanie produktów z koszyka
Kerth
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 6.08.2012

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


Hi,
wymyśliłem sobie sumowanie produktów z mojego koszyka, tylko, że mam pewien problem, bo albo za bardzo kombinuję albo źle zaprojektowałem kilka tabel. Może na początek przedstawie strukturę tabel:

Tabela z koszykiem:

  1. CREATE TABLE `basket` (
  2. `id_product_basket` INT(11) NOT NULL,
  3. `member_id` INT(11) NOT NULL,
  4. `product_id` INT(11) NOT NULL
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


Do tej tabeli dołączam jeszcze:

  1. CREATE TABLE `members` (
  2. `id_user` INT(11) NOT NULL,
  3. `username` VARCHAR(24) NOT NULL,
  4. `password` VARCHAR(50) NOT NULL,
  5. `email` VARCHAR(50) NOT NULL
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


  1. CREATE TABLE `products` (
  2. `id_product` INT(11) NOT NULL,
  3. `category_id` INT(11) NOT NULL,
  4. `product_name` text NOT NULL,
  5. `product_price` DECIMAL(10,2) NOT NULL,
  6. `product_status` tinyint(1) NOT NULL
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;



  1. CREATE TABLE `promo` (
  2. `id_promo` INT(11) NOT NULL,
  3. `product_id` INT(11) NOT NULL,
  4. `percent_promo` INT(3) NOT NULL
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;


Moje aktualne zapytanie:

  1. $getDataInBasket2 = $db->prepare("SELECT a.id_product, a.product_price, b.percent_promo FROM `products` AS `a`
  2. JOIN `promo` AS `b` ON a.id_product = b.product_id
  3. JOIN `basket` AS `c` ON a.id_product = c.product_id
  4. JOIN `members` AS `d`
  5. WHERE `id_user` = :member_id
  6. ");
  7. $getDataInBasket2->bindValue(":member_id", $_SESSION['id_user'], PDO::PARAM_INT);
  8. if(!$getDataInBasket2->execute()){
  9. print_r($getDataInBasket2->errorInfo());
  10. }


trochę tego dużo ale już tłumaczę jak to ma działać. Chodzi o zsumowanie wszystkich produktów z koszyka z uwzgędnieniem promocji dlatego też łączę z tabelą promo. W tabeli promo jest procent promocji na podstawie, którego "w locie" obliczam ile wynosi aktualna cena, kodem:

  1. $resultOfPromo = $basketContainer2['product_price'] / 100 * $basketContainer2['percent_promo'];
  2. $newPrice = $basketContainer2['product_price'] - $resultOfPromo;


Na podstawie pobranej ceny normalnej oraz procentu promocji powinna się wyświetlić cena promocyjna.
Aktualne zaptanie, co prawda wyświeetla cenę produktu ale tylko pierwszego z koszyka. Nie sumuje.
Jeśli ktoś się w tym połapie oraz byłby w stanie mi pomóc jak zliczyć wszystkie produkty z koszyka z uqzględnieniem promocji to będę bardzo wdzięczny.
Pozdrawiam.
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: 22.08.2025 - 10:03