Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Przerobka funkcji
aress_86
post 3.03.2010, 13:49:01
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 13.02.2010

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


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 ?
Go to the top of the page
+Quote Post
blooregard
post 3.03.2010, 14:02:22
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




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'];


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
athei
post 3.03.2010, 14:07:49
Post #3





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


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. }
Go to the top of the page
+Quote Post
aress_86
post 3.03.2010, 20:34:02
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 13.02.2010

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


Po wielkich bólach ale udało się. Dzieki za pomoc
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: 19.07.2025 - 03:17