Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Przerobka funkcji
Forum PHP.pl > Forum > Przedszkole
aress_86
Witam

Ogolnie wyglada to tak w momencie zlozenia zamowienia id produktu i ich ilosc jest zapisywana w tabeli order_detail odpowiednio w product_id i quantity i sa przypisane do id danego zamowienia. Potrzebuje teraz dorobic do tego cos co by w momencie anulowania zamowienia pobieralo odpowiednia ilosc danego produktu z zamowienia (tabeli order_detail) i dodawalo do tabeli product w kolumnie product_quantity. krotko mowiac jezeli zamowienie jest anulowane to ilosc z zamowienia wraca na stan magazynowy.

Ponizej funkcja ktora odpowiada na oznaczanie zamowienia jako anulowane.

  1.  
  2. public function MarkOrderAsCanceled($orderId)
  3. {
  4. $query_string="UPDATE orders
  5. SET status = 7
  6. WHERE order_id = $orderId";
  7. $result = $this->dbManager->DbQuery($query_string);
  8. return $result;
  9. }


Jakies pomysly ?
blooregard
Nie rozumiem, z czym masz problem.

Dodajesz w tej metodzie kwerendę, która robi UPDATE na stanach magazynowych używając do niej danych pobranych z zamówienia $orderId

  1. SELECT ile, czego FROM order_detail WHERE order_id = $orderID;
  2. wynik = wynik_powyzszego;
  3. UPDATE stany_magazynowe SET ile = ile+wynik['ile'] WHERE id = wynik['czego'];
athei
pobierz wszystkie produkty dla danego zamowienia
  1. $sql= "
  2. SELECT
  3. product_id
  4. , quantity
  5. FROM
  6. order_detail
  7. WHERE
  8. order_id = $orderId ";
Utwórz tablicę z produktami (użyj sobie swoich metod)
  1. if ($result = $mysqli->query($sql))
  2. {
  3. $zamowienia = array();
  4. while ($row = $result->fetch_assoc()) {
  5. $zamowienia['product_id'][] = $row['product_id'];
  6. $zamowienia['quantity'][] = $row['quantity'];
  7. }
Aktualizuj pobrane produkty
  1. for ($i=0; $i<count($zamowienia['product_id']; $i++)
  2. {
  3. $sql="
  4. UPDATE
  5. product
  6. SET
  7. product_quantity = product_quantity+$zamowienia['quantity'][$i]
  8. WHERE
  9. $product_id = $zamowienia['product_id'][$i] ";
  10. query();
  11. }
aress_86
Po wielkich bólach ale udało się. Dzieki za pomoc
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.