Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kasowanie tabeli w mysql za pomoca php
Forum PHP.pl > Forum > PHP
selea
(php+mysql) sklep internetowy
problem napotkalem w kasowaniu tabeli w bazie danych podczas zamykania przegladarki internetowej

skrypt polega na tym ze niezalogowany uzytkownik wklada do koszyka jakas rzecz
stawiam sesje w ktorej wartosciami sa $st=2 i $sekunda="sekunda z czasu internetowego"

nastepnie tworzy sie tabela "create table tab$sekunda" i dodaje rekord zamowionego produktu . jezeli gosc zrezygnuje z przemiotu zamawianego naciska w koszyku usun - przerywam sesje i kasuje tabele ALE...

jezeli gosc nie nacisnie klawisza usun a zamknie przegladarke to ta tabela mi zostaje i zasmieca baze danych czy istenieje jakas mozliwosc przeslanmia "drop table tab$sekunda" podczas zamykania przegladarki questionmark.gif?
e-Gandalf
co zrobisz przy tysiacu requestow (np. przy uzyciu apache benchmarka? ab -n 1000 http://adres) - stworzysz 1000 tabel? Przeciez to zabije Ci system...
kszychu
Użyj tabel tymczasowych: CREATE TEMPORARY TABLE .....
rogrog
1. a czy na pewno nie może się zdażyć, że dwóch lub więcej użytkowników wejdzie na stronę w tej samej sekundzie i ich tabele się zmiksują or sth like that?

2. tak jak mówi e-Gandalf, okropnie nieefektywne. Możesz użyć tabel tymczasowych, ale najlepiej chyba używać jednej tabeli, w której będzie zapisany przy każdym rekordzie identyfikator sesji. A tak w ogóle, czy nie możesz przekazywać koszyka w sesji ?

3. co do twojego pytania - jeżeli chcesz coś wywołać przy zamykaniu przeglądarki, musiałbyś zastosować JavaScriptowe onUnload, ale nigdy nie możesz ufać temu rozwiązaniu - akcja niekoniecznie musi być wykonana.
selea
Cytat(e-Gandalf @ 2004-09-17 16:58:42)
co zrobisz przy tysiacu requestow (np. przy uzyciu apache benchmarka? ab -n 1000 http://adres) - stworzysz 1000 tabel? Przeciez to zabije Ci system...

ale nie ma takiej opcji bo tabel moze byc tylko 60 (poniewaz minuta ma tylko 60 sek :]) a jest sprawdzanie czy istenieje taka tabela. to sa tymczasowe tabele tworzone tylko na czas obecnosci uzytkownika na stronie wiec podczas korzystania z witryny 5 uzytkownikow i kazdy z nich wrzuci produkt do koszyka (ale nie zlozy zamowienia ) to zostanie utworzone 5 tabel snitch.gif

nie wiem czy to dobre rozwiazanie ale takie mi wpadlo do glowy :]
silent
A jeśli będziesz miał np 200 użytkowników? Będziesz pisał cały sklep od nowa?

Poczytaj o sesjach.
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.