/** * Lementi a Cart objektumban lévő összes tételt. * * Külön szedem két halmazra a kosár tartalmát. * 1. amelyek már bent vannak az sql táblában -> Update kell, * 2. amelyek nincsennek az adat táblában, azoknak -> Insert kell. * * Ha a Cart osztályban történnének az sql műveletek, akkor nem kellene itt szétválogatni. */ public function saveCart() { //void $conn = new ConnectionHandler(); //bejárjuk a kosárban lévő termékek listáját. foreach ($this->getCart()->getProducts() as $value) { $quantity = $this->getCart()->valueOfQuantity($value); //ami benne van, arra mindre megy az update. $count = $conn->preparedCountQuery("SELECT count(*) FROM kosar WHERE u_id = ? AND termek_id = ?", array($this->getId(), $value->getId())); if ($count[0] >= 1) { //amelyek szerepelnek a Kosar táblában, updatet kapnak a mennyiseg oszlopra. $conn->preparedUpdate("Kosar", array("mennyiseg"), array($quantity), "u_id = ? and termek_id = ?", array($this->getId(), $value->getId())); } else { //amelek eddig nem voltak a Kosar táblában beszúrásra kerülnek. $conn->preparedInsert("Kosar", array("u_id", "termek_id", "mennyiseg"), array($this->getId(), $value->getId(), $quantity)); } } ///$this->conn->close(); azért se zárom be :D }
//a szükséges mennyiség nyilvántartása kulcs: termek_id => szükséges mennyiség $kellDb = array(); //ez előtt ellenőrzés történik ,hogy van-e elég termék raktáron, így csak akkor jutunk el ide, ha igen. while ($row = $stmt2->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) { echo $row[0] . " " . $row[1] . " " . $row[2] . " " . $row[3] . " " . $row[4] . " " . $row[5] . " " . $row[6] . "<br>"; $termek_id = $row[2]; //ha nem létezik a termek_id akkor belerakjuk a szükséges mennyiséget if (array_key_exists($row[2], $kellDb) == false) { $kellDb[$termek_id] = $row[4]; } //ha a szükséges mennyiség nagyobb mint nulla az adott termék_id esetén. if ($kellDb[$termek_id] > 0) { $raktaron = $row[3]; //ha több kellene mint amennyi van az adott szállítmányban a termékből, vagy ugyanannyi if ($raktaron - $kellDb[$termek_id] < 0 || $raktaron - $kellDb[$termek_id] == 0) { $kellDb[$termek_id] = $kellDb[$termek_id] - $raktaron; $raktaron = 0; echo "update raktaron:" . $raktaron . " && ennyi kell meg: " . $kellDb[$termek_id] . "<br>"; $conn->preparedDelete("raktar", "termek_id=? and szall_id=? and mennyiseg=? and stat_id", array($termek_id, $row[0], $row[3], $row[5])); } else { $raktaron -= $kellDb[$termek_id]; $kellDb[$termek_id] = 0; echo "update raktaron:" . $raktaron . " ennyi kell meg: " . $kellDb[$termek_id] . "<br>"; $conn->preparedUpdate("raktar", "mennyiseg", array($raktaron), "raktar", "termek_id=? and szall_id=? and mennyiseg=? and stat_id", array($termek_id, $row[0], $row[3], $row[5])); } } } ?> </body> </html>