Skocz do zawartości

Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zdjęcie

Update pola w bazie


  • Zaloguj się, aby dodać odpowiedź
48 odpowiedzi w tym temacie

#21
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Witam
Wracam do tematu po chwili przerwy :)
Niestety ten warunek nie działa, ten select zagnieżdżony
SELECT product_id FROM tl_iso_cart_items WHERE id IN (" . implode(',', array_map('intval', array_keys($arrItemIds))) . "))

Jeśli tu wpiszę ręcznie ID rekordów z tl_iso_cart_items to działa, ale nie z powyższym.

Poprosze o pomoc.

Pozdrawiam
  • 0

#22
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Daj kod

print_r($arrItemIds);exit;

I znajdź te ID w bazie danych - jakie to pole i tabela :)
  • 0

Codefog - Contao web development


#23
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Dostałem coś takiego:
[165] => 43
gdzie cyfra pierwsza w nawiasie kwadratowym to ID w tabeli tl_iso_cart_items. Druga to z tego co widze to jakiś koleny numer przyznawany dla kolejnych zakupów. W tej tabeli (tl_iso_cart_items) jest też cos takiego jak product_id, czyli ID produktu z tl_iso_products - tabeli którą trzeba zupdatować po zakupie.
Kilka prób i się potwierdza...
  • 0

#24
spin80

spin80

    Ekspert

  • Zarejestrowani
  • PipPipPipPipPip
  • 296 postów
Spróbuj może ten moduł wf_isotopeStockManagement z tego co testowałem to daje możliwość dodania pola z ilością do każdego produktu a ilość dostępnych sztuk wyświetla na stronie. Po zakupie zmienia ilość dostępnych produktów.
  • 0

#25
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Dzięki, jego tez przetestuję, ale poproszę jeszcze w temacie powyższej konwersacji z Kamilem o podpowiedź
  • 0

#26
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
kylu123, skoro 163 to ID z tl_iso_cart_items, no to query które podałem musi działać. Daj taki kod i zobaczymy co wypluwa:

$query = Database::getInstance()->execute("UPDATE tl_iso_products SET quantity=quantity-1 WHERE id IN (SELECT product_id FROM tl_iso_cart_items WHERE id IN (" . implode(',', array_map('intval', array_keys($arrItemIds))) . "))");
echo $query->query; exit;

  • 0

Codefog - Contao web development


#27
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
wrzuciłem i mam takie cuś np:
UPDATE tl_iso_products SET iloscwmagazynie=iloscwmagazynie-1 WHERE id IN (SELECT product_id FROM tl_iso_cart_items WHERE id IN (169,170))

Dodaję coś do koszyka, przechodzę na żywy organizm bazy danych narzędziem MySQL Query Browser i ... działa, zmienia mi pole które chcę o wartość 1 (ciągle mając produkty w koszyku).
Niestety jak robię to przez przeglądarkę nie updatuje mi tych ilości. Myślałem że to wina mojego localhosta, ale wrzuciłem wsio na na serwer i jest to samo.
Chyba problem jest taki że najpierw następuje czyszczenie koszyka, a dopiero po tym sprawdzanie i update pola w bazie ... Nie wiem ...
  • 0

#28
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
A zobacz co daje

echo Database::getInstance()->execute("SELECT product_id FROM tl_iso_cart_items WHERE id IN (" . implode(',', array_map('intval', array_keys($arrItemIds))) . ")")->numRows;
exit;

  • 0

Codefog - Contao web development


#29
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
wyświetlił mi "0"
brak danych ... Miałem rację?
  • 0

#30
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Faktycznie brak danych... to się porobiło ;) A spróbuj przejrzeć w poszukiwaniu ID produktów:

print_r($_SESSION); exit;

  • 0

Codefog - Contao web development


#31
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Niestety nie ma tu raczej nic:
[url=""]Array
(
    [REQUEST_TOKEN] => 396c1b2f7f55700f1882e32a6d588538
    [TL_LANGUAGE] => pl
    [DISABLE_CACHE] => 
    [TL_USER_LOGGED_IN] => 
    [FE_DATA] => Array
        (
            [referer] => Array
                (
                    [last] => /lm/index.php/koszyk-checkout/step/review.html
                    [current] => /lm/index.php/koszyk-checkout/step/process.html
                )

        )

    [ISO_CONFIRM] => Array
        (
        )

    [LAST_PAGE_VISITED] => index.php/sklep-koszyk.html
    [CHECKOUT_DATA] => Array
        (
            [billing_address] => Array
                (
                    [firstname] => c
                    [lastname] => c
                    [company] => 
                    [street_1] => c
                    [street_2] => 
                    [postal] => 25-258
                    [city] => c
                    [country] => pl
                    [phone] => 2156444
                    [email] => 
                    [id] => 0
                )

            [shipping_address] => Array
                (
                    [id] => -1
                )

            [shipping] => Array
                (
                    [module] => 1
                )

            [payment] => Array
                (
                    [module] => 1
                )

        )

)[/url]


  • 0

#32
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
A może zmienną $arrItemIds przed updatem bazy przypisać do jakiejś zmiennej sesji?
I potem się odwoływać do ID produktu z koszyka własnie przez sesję?
  • 0

#33
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Dobrze by było... Jak będę miał chwilkę to na to zerknę, ale najwcześniej to w niedzielę.
  • 0

Codefog - Contao web development


#34
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Kamilu miałeś może chwile żeby do tego zerknąć?
Pozdr
  • 0

#35
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
A spróbuj tak - http://pastebin.com/FmHMtEiZ
  • 0

Codefog - Contao web development


#36
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Niestety, wyrzucił mi dużo błędów:

Fatal error: Could not load class M in D:\WWW\lm\system\functions.php on line 104
#0 [internal function]: __error(256, 'Could not load ...', 'D:\WWW\lm\syste...', 104, Array)
#1 D:\WWW\lm\system\functions.php(104): trigger_error('Could not load ...', 256)
#2 [internal function]: __autoload('M')
#3 D:\WWW\lm\system\libraries\System.php(164): get_class_methods('M')
#4 D:\WWW\lm\system\modules\isotope\IsotopeOrder.php(278): System->import('M')
#5 D:\WWW\lm\system\modules\isotope\ModuleIsotopeCheckout.php(288): IsotopeOrder->checkout(Object(IsotopeCart))
#6 D:\WWW\lm\system\modules\frontend\Module.php(140): ModuleIsotopeCheckout->compile()
#7 D:\WWW\lm\system\modules\isotope\ModuleIsotope.php(91): Module->generate()
#8 D:\WWW\lm\system\modules\isotope\ModuleIsotopeCheckout.php(102): ModuleIsotope->generate()
#9 D:\WWW\lm\system\libraries\Controller.php(359): ModuleIsotopeCheckout->generate()
#10 D:\WWW\lm\system\modules\frontend\PageRegular.php(100): Controller->getFrontendModule('24', 'main')
#11 D:\WWW\lm\index.php(266): PageRegular->generate(Object(DB_Mysql_Result))
#12 D:\WWW\lm\index.php(401): Index->run()
#13 {main}

Notice: unserialize() [function.unserialize]: Error at offset 0 of 1 bytes in D:\WWW\lm\system\functions.php on line 374
Notice: unserialize() [function.unserialize]: Error at offset 0 of 15 bytes in D:\WWW\lm\system\functions.php on line 374
Notice: unserialize() [function.unserialize]: Error at offset 0 of 11 bytes in D:\WWW\lm\system\functions.php on line 374
Notice: unserialize() [function.unserialize]: Error at offset 0 of 39 bytes in D:\WWW\lm\system\functions.php on line 374
...

  • 0

#37
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Sorki, powinno być tak - http://pastebin.com/41nAwgtM
  • 0

Codefog - Contao web development


#38
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Witaj
Przeszedł mi cały proces zamówienia bardzo ładnie, błędami nie rzucił, ale niestety ilości nie zupdatował :(
  • 0

#39
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1 538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Zobacz co wypluwa http://pastebin.com/29Zw3gL7 i czy w bazie są produkty z takimi ID.
  • 0

Codefog - Contao web development


#40
kylu123

kylu123

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 203 postów
Nie wyrzuca nic.
A zatem nie jest spełniony warunek:
if (is_array($_SESSION['ISO_UPDATE_QUANTITY']) && !empty($_SESSION['ISO_UPDATE_QUANTITY']))

Przerzuciłem print_r nad niego i potwierdzam że w zmiennej $_SESSION['ISO_UPDATE_QUANTITY'] nic się nie zapisuje...
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych użytkowników