![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%)
|
Witam,
mój problem jest taki, że mam sklep WWW, w momencie składania zamówienia, sprawdza czy istnieje dostępna ilość na stanie, no i tu się pojawia problem, gdyż w momencie liczba_dostepnych<liczba_wybranych pojawia sie komunikat, ale zamiast cały proces zamowienia sie cofnąć to jest przyjmowany ale bez tej pozycji, która objawiła się błędem. a tak być nie powinno. W momencie błędu ilości powinno cofnąć cały proces i tj "nakazać kupującemu zmianę ilości"
Więc tak ogólnie w bazie mam kategorie, uslugi, rabat (rabat laczy sie z usluga poprzez iduslugi), klienci, koszyk_klienta, zamowienia, szczegoly_zamowienia... i dwie tabele akurat w tym aspekcie mnie istotne.. Projekt bazy robiony w DBdesigner typ bazy innodb, z uzyciem kluczy obcych.. i teraz tak nie wiem czy do kazdej instrukcji napisanej w kodzie zamowienia.php musze zastosować te commit i rollback ? czy wystarczy jedna ale cofając każde insert update delete ?
|
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%)
|
To raczej błąd "struktury" skryptu a nie błąd sam w sobie. Naucz się PHP lub zleć to komuś zamiast szukać łosia, który odwali za darmo cała robotę...
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Transakcję zakłada się na cały blok operacji, które mają być wykonane atomowo, tj. albo wykonają się w całości, albo w ogóle.
PS. Kod jest masakryczny. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 495 Pomógł: 245 Dołączył: 1.07.2009 Skąd: Bydgoszcz Ostrzeżenie: (0%)
|
Szczerze mówiąc to też mi ciężko się odnaleźć w Twoim kodzie. A nie możesz przed każdą transakcją sprawdzać ile masz w bazie kupowanego produktu, porównywać z zamówieniem i jeśli $zamówiony<$na_stanie to wykonujesz resztę kodu ; else{ nie wykonujesz. Nie będzie tak łatwiej? Po co bawić się w ROLLBACK i COMMIT?
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%)
|
No więc wykonałam że najpierw sprawdza stan magazynu, jesli brak ilosci to jest komunikat i koniec... teraz tylko działa mi dodawanie , ale nie wiem dlaczego tylko dla jednego artykulu... wywala mi blad : Warning: mysql_query(): 8 is not a valid MySQL-Link resource in C:\xampp\htdocs\okazje\zamowienie.php on line 73 Warning: mysql_error() expects parameter 1 to be resource, null given in C:\xampp\htdocs\okazje\zamowienie.php on line 73
bedzie błąd w zapytaniu, tylko wg mnie pola się zgadzają, poza tym przy 1wszym towarze te zapytanie działa popranie.. to dla kolejnego towaru ma problem sprawdzenie czy jest na stanie taka ilosc i ta część dział poprawnie , natępnie jesli ilosc na magazynie umozliwia zakup to wstawienie rekordów do tableli zamówienia, pobranie id_zam, pobranie danych z koszyka < będa potrzben do uzupelnienia tabeli szczegoly_zam
wstawienie danych do tabeli szczegoly_zamowienia, o ta linię kodu ma warning przy kolejnym towarze w koszyku
potem następuje usunięcie zawartości koszyka, aktualizacja ilosc _dostepnych i sumy wybranych rab w wyniku poprawnego wykonania mail z informacją o przyjęciu zamówienia... Czy teraz będzie łatwiej nakierować na ewetualne nakierowanie na zlikidowanie błędu ? |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 11 Dołączył: 5.09.2009 Ostrzeżenie: (0%)
|
WoW ale kod (IMG:style_emoticons/default/exclamation.gif)
co to ma być to: Czymże jest '$mysql' ? Dlaczego nie '$lacze' ? |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%)
|
W błędzie masz odpowiedz, parser php wywali Ci, że oczekuje (słówko expects) identyfikatora łącza. Jak napisał wiewiorek zmienna $mysql nie jest nim na pewno.
PS. Zdaniem moim i przedmówców, zamiast później przepisywać to jeszcze raz, albo i więcej razy poszukaj na forum postów o organizacji kodu, rozdzieleniu warstwy php od html-a albo zleć to komuś. gino |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%)
|
Po pierwsze - trudno wytłumaczyć komuś kto zna podstawy podstaw PHP jak ma rozwiązać swój problem.
Po drugie - trudno połapać się w Twoim "kodzie" Po trzecie jak już wcześniej mówiłem tu nie ma błędu jako takiego. Widzę tu jedynie błąd w postaci źle zaplanowanej aplikacji a szukanie łosia, który poprawi coś takiego za darmo droga Panno to zwykłe zdzierstwo... Przechodząc do meritum - nauczysz się PHP albo zleć to komuś |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 2.03.2011 Ostrzeżenie: (0%)
|
Po pierwsze - trudno wytłumaczyć komuś kto zna podstawy podstaw PHP jak ma rozwiązać swój problem. Po drugie - trudno połapać się w Twoim "kodzie" Po trzecie jak już wcześniej mówiłem tu nie ma błędu jako takiego. Widzę tu jedynie błąd w postaci źle zaplanowanej aplikacji a szukanie łosia, który poprawi coś takiego za darmo droga Panno to zwykłe zdzierstwo... Przechodząc do meritum - nauczysz się PHP albo zleć to komuś 1. Te podstawy podstaw są wyciągnięte z książek php mysql apache ... 2. Kod też jest utowrzony na podstawie tychże książek np cały rozdział 15 , php5, mysql apache. od podstaw 3. trzeba było podać od razu cene Was Pan 4. akcentowaie płci nie ma tu znaczenia |
|
|
|
![]() ![]() |
|
Aktualny czas: 27.08.2026 - 19:14 |