Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]funkcje tablicowe a problem z polem [0]
Forum PHP.pl > Forum > Przedszkole
hyhyhy
Witam,

Piszę sobie koszyk oparty na tablicach. Generalnie wszystko działa, ale - po mojej drobnej i nie wiem czy właściwej modyfikacji.
Korzystam ogólnie z funkcji tablicowych PHP, np.

  1. private function czyIstnieje(){
  2. if (array_key_exists($this->id, $_SESSION['koszyk']['id'])){
  3. return true;
  4. }else{
  5. return false;
  6. }
  7. }
  8.  
  9.  
  10. private function ktory(){
  11. $this->ktory = array_search($this->id, $_SESSION['koszyk']['id']);
  12. }


skąd mój wniosek, że chyba powinny działać jak należy, ale jest problem - otóż funkcje te zdają się pomijać rekord tablicy [0].
Więc dodając pierwszy produkt do koszyka, zdarza mu się powtórzenie - żadnemu innemu już nie - tak, jakby zawartość $_SESSION...[0] nie istniała. Problem rozwiązałem, wrzucając na początku kodu $_SESSION['koszyk']['id'][0] = 'id'

Moje pytanie brzmi: czy to ja coś spieprzyłem, czy te funkcje "mają zwyczaj" pomijać pierwszy rekord? I czy jest to w takim wypadku dobre rozwiązanie?

toaspzoo
Funkcje nie zwykły z czasem pomijać rekordu tablicy o numerze 0 worriedsmiley.gif

PS. Po co trzymać dane koszyka (wnioskuję, że do sklepu) w sesjach, nie lepiej zapisywać do bazy ?
Fifi209
Cytat(toaspzoo @ 9.07.2011, 00:33:10 ) *
PS. Po co trzymać dane koszyka (wnioskuję, że do sklepu) w sesjach, nie lepiej zapisywać do bazy ?

Lepiej w sesji, gdy klient wyjdzie nie trzeba się martwić o czyszczenie bazy bo sesja sama wygaśnie.
toaspzoo
Cytat(Fifi209 @ 9.07.2011, 00:35:43 ) *
Lepiej w sesji, gdy klient wyjdzie nie trzeba się martwić o czyszczenie bazy bo sesja sama wygaśnie.


Oczywiście, wziąłem to pod uwagę, lecz co, gdy potencjalny klient chciałby wrócić na stronę ?
Fifi209
Cytat(toaspzoo @ 9.07.2011, 00:39:08 ) *
Oczywiście, wziąłem to pod uwagę, lecz co, gdy potencjalny klient chciałby wrócić na stronę ?

Zawsze masz ciasteczka smile.gif Swoją drogą, idź do supermarketu naładuj do wózka i poleć do domu, wróć za 2 dni, zobaczymy czy wózek dalej będzie pełny Twoich zakupów.
toaspzoo
Ciasteczka będą najlepszym wyjściem, ale powinny zawierać tylko id przedmiotów
Fifi209
Ilości już nie? ;]
toaspzoo
Ilość można zapisywać w bazie danych, oraz ją sukcesywnie kasować (rekordy > 1d)
Fifi209
Cytat(toaspzoo @ 9.07.2011, 12:43:33 ) *
Ilość można zapisywać w bazie danych, oraz ją sukcesywnie kasować (rekordy > 1d)

I znów baza ;] Dodatkowe niepotrzebne obciążenie, w dodatku trzeba uruchamiać crona - bez sensu.
toaspzoo
Jakiego crona ?
Z każdym wejściem może sprawdzać, a takie obciążenie to nic dla serwera.

by_ikar
#Fifi dobrze mówi, takie informacje trzyma się w sesji, jeżeli sobie pójdzie to sobie pójdzie. Widziałem sporo sklepów i tam zawsze trzymali takie info w sesji, a nie w bazie.
Fifi209
Cytat(toaspzoo @ 9.07.2011, 12:59:44 ) *
Jakiego crona ?
Z każdym wejściem może sprawdzać, a takie obciążenie to nic dla serwera.

Z każdym wejściem chcesz dodatkowo odpytywać bazę? Świetny pomysł! Pogratulować!
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.