Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Koszyk - rozwiazanie, opinia, porada?
mokry
post
Post #1





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Okey, problem przedstawia sie nastepujaco. Skrypt do obslugi sklepu online.
Wszystko przemyslane, pozostaje problem koszyka.

Dane:

Baza danych:
Tabele: users, produkty, kategorie, zamowienia, pozycje, config, tmp

Tabela tmp:
Kod
| id | date | session_id | product_id | quantity |


Jest sesja, dodaje produkt do koszyka.
zamowienie produktu -> dodanie danych do tabeli tmp

kasowanie tmp (optymalizacja tabeli) -> delete from tmp where date < $wczoraj

BTW: cookies racej odpada, bo nie przepadam za nimi (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Czy takie zalozenie jest ok? jakies propozycje?

Sorki za forme, ale mam ludzi w domu, motuja piec CO i musze jakos podzielis czas miedzy nimi a praca.
Z gory dzieki za sugestie i uwagi,
Michal
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
REN
post
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2005
Skąd: Warszawa

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


Moze zamiast ID nalezalo by stworzyc index dla kolumn session_id oraz product_id?
Oczywiscie zakladajac, ze dany produkt moze wystepowac tylko raz w danym koszyku.

Zawsze tez mozna przechowywac koszyk w sesji. Nie trzeba bedzie meczyc bazy danych a wraz z
wygasnieciem sesji zostanie usuniety rowniez koszyk.
Go to the top of the page
+Quote Post
mokry
post
Post #3





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Hm, myslalem jeszcze nad tym aby calkowicie usunac kolumne ID.
Jezeli chodzi o przechowywanie koszyka w sesji to niebardzo bym chcial tego, bo jak jeszcze pozniej analizowalem co chce osiagnac, to doszedlem do wniosku ze dodam jeszcze do tabeli kolumne 'user_id'
Jezeli osoba jest niezalogowana to user_id = 0, jesli natomiast jest zalogowana to oczywiscie user_id przyjmuje wartosc 'id' z tabeli 'users'.
Po wylogowaniu sie, od chwili utworzenia sesji, przez najblizsze 24h, jesli nie zlozy zamowienia, bedzie mial to w swoim koszyku.
Go to the top of the page
+Quote Post
REN
post
Post #4





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2005
Skąd: Warszawa

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


Kolumna ID staje sie zbedna wiec trzeba ja wywalic.

Co do zapamietywania koszyka to nie przewidziales wszystkiego (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Co wtedy kiedy ktos wrzuci do koszyka towary a potem zaloguje sie na swoje konto?
Ktory koszyk bedzie tym wazniejszym? ten staty czy ten nowy? a moze klient
przypadkowo wrzucil do koszyka jakas pierdole i przez to straci ten zapisany wczesniej
koszyk (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Takich kwiatkow jest wiecej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mokry
post
Post #5





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Po zalogowaniu moze nastapic update kolumn z danym session_id()

Nie ukrywam ze zalezy mi na utrzymaniu koszyka w MySQL, bowiem zyczeniem mojego klienta jest ciagly podglad na rzeczy w koszyku(WTF?).

Ten post edytował mokry 19.11.2006, 14:03:20
Go to the top of the page
+Quote Post
REN
post
Post #6





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2005
Skąd: Warszawa

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


nie zrozumiales mnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) przeczytaj jeszcze raz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

"ciagly podglad koszyka" - pewnie chodzi o to, zeby na kazdej stronie pokazywala sie zawartosc koszyka (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mokry
post
Post #7





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Cytat
Co wtedy kiedy ktos wrzuci do koszyka towary a potem zaloguje sie na swoje konto?
Ktory koszyk bedzie tym wazniejszym? ten staty czy ten nowy?

Po zalogowaniu sie, nastapi zapytanie MySQL UPDATE rekordow z session_id() == session_id w polach 'user_id' na wlasciwe user_id uzytkownika. po wylogowaniu sie, wyswietli sie komunikat ze koszyk dostepny bedzie po ponownym zalogowaniu sie, a wszelkie produkty, ktore doda jako gość zostana dopisane do istniejacego juz koszyka....

Jesli chodzi o podglad koszyka, to klient ma na mysl, ze loguje sie do panelu adm. i widzi koszyki tymczasowe z wymienionymi produktami z podzialem na userow/gosci.
Go to the top of the page
+Quote Post
REN
post
Post #8





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2005
Skąd: Warszawa

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


Laczenie w ten sposob koszykow to IMO malo eleganckie rozwiazanie. Wykonujesz dzialanie
ktorego klient moze sobie nie zyczyc. Nie wyobrazam sobie sytuacji kiedy ide do supermarketu
i przy kasie ktos bez pytania wrzuca mi do koszyka produkty ktore zostawilem przy poprzedniej
wizycie. Skoro je zostawilem to moze ich nie chcialem?

Chyba lepszym rozwiazaniem jest po zalogowaniu poinformowanie klienta, ze ma zapisany
koszyk i zeby zdecydowal co chce z nim zrobic (usunac, zastapic albo polaczyc z istniejacym).


Twoj zleceniodawca chce miec podglad na porzucone koszyki. Co ludzie wybieraja ale nie skladaja
zamowienia. To sa istotne informacje.
Go to the top of the page
+Quote Post
DjKermit
post
Post #9





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 18.06.2005

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


Cytat(mokry @ 19.11.2006, 13:44:35 ) *
Jezeli osoba jest niezalogowana to user_id = 0, jesli natomiast jest zalogowana to oczywiscie user_id przyjmuje wartosc 'id' z tabeli 'users'.

1. A co jeśli w tym samym czasie zakupy będzie robić kilka nie zalogowanych klientów, każdego id będzie 0?
Cytat(mokry @ 19.11.2006, 13:44:35 ) *
BTW: cookies racej odpada, bo nie przepadam za nimi

2. Teraz wchodzę do Twojego sklepu, nie luguję się i napycham koszyk, porzucam go i wracam za kilka godzin. Skąd wiesz że to ja i skąd wiesz który koszyk jest mój?
Go to the top of the page
+Quote Post
mokry
post
Post #10





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


Ad1) Tak, kazda osoba niezalogowana przyjmuje user_id = 0. potem w panelu admina jest podzial na gosci i uzytkownikow.
Jesli pare osob robi zakupy, kazdy ma user_id = 0, a skad wiadomo ktore wpisy uaktualnic? Po koumnie session_id. Przecierz po zalogowaniu sie, nie zmienia sie session_id()

Ad2) Jesli nie byles zalogowany, to koszyk faktycznie przepada, ale jesli robiles zakupy, potem sie zalogowales lub od razu sie zalogowales i potem robiles zakupy (bez znaczenia), to potem dopiero po zalogowaniu masz dostepny koszyk, z tym, ze masz od razu po zalogowaniu sie podglad na koszyk z wzmianka, ze dane produkty byly wczesniej wybrane na identyfikatorze innej sesji.
Go to the top of the page
+Quote Post
REN
post
Post #11





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2005
Skąd: Warszawa

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


zawsze mozna zalozyc ciacho zeby rozpoznawac tez tych niezalogowanych
Go to the top of the page
+Quote Post
DjKermit
post
Post #12





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 18.06.2005

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


Cytat(mokry @ 19.11.2006, 17:42:27 ) *
Ad2) Jesli nie byles zalogowany, to koszyk faktycznie przepada, ale jesli robiles zakupy, potem sie zalogowales lub od razu sie zalogowales i potem robiles zakupy (bez znaczenia), to potem dopiero po zalogowaniu masz dostepny koszyk, z tym, ze masz od razu po zalogowaniu sie podglad na koszyk z wzmianka, ze dane produkty byly wczesniej wybrane na identyfikatorze innej sesji.

Czyli dyskryminacja, jak się nie zaloguję to mój koszyk przepadnie.
Trochę niebardzo moim zdaniem.
Go to the top of the page
+Quote Post
mokry
post
Post #13





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

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


no, mozna ew przechowac w cookies id sesji
Go to the top of the page
+Quote Post
REN
post
Post #14





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2005
Skąd: Warszawa

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


Kermit troche przesadzasz w druga strone. Czego oczekujesz? Ze bedac totalnym anonimem bedziesz zbieral same profity?
Go to the top of the page
+Quote Post
DjKermit
post
Post #15





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 18.06.2005

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


Cytat(REN @ 20.11.2006, 01:05:38 ) *
Kermit troche przesadzasz w druga strone. Czego oczekujesz? Ze bedac totalnym anonimem bedziesz zbieral same profity?

Nie wydaje mi się żebym przesadzał, bo niby dlaczego mam być inaczej traktowany tylko dlatego że się nie zalogowałem (nie chciałem, zapomniałem, z rostargnienia - powód mało ważny).
W końcu to sklep, ma zarabiać pieniądze, czyli wypadałoby pieścić każdego klienta żeby nie uciekł, klient nasz pan jak mówi przysłowie.
Poza tym to tylko opinia tak jak kolega prosił.

Ten post edytował DjKermit 20.11.2006, 01:14:54
Go to the top of the page
+Quote Post
REN
post
Post #16





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 28.10.2005
Skąd: Warszawa

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


Co ty wiesz o zarabianiu pieniedzy? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ale to tylko moja opinia (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) taki skrot myslowy (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.09.2025 - 21:39