Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]funkcje tablicowe a problem z polem [0]
hyhyhy
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 5
Dołączył: 6.02.2011

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


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?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
toaspzoo
post
Post #2





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Funkcje nie zwykły z czasem pomijać rekordu tablicy o numerze 0 (IMG:style_emoticons/default/worriedsmiley.gif)

PS. Po co trzymać dane koszyka (wnioskuję, że do sklepu) w sesjach, nie lepiej zapisywać do bazy ?
Go to the top of the page
+Quote Post
Fifi209
post
Post #3





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #4





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


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ę ?
Go to the top of the page
+Quote Post
Fifi209
post
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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 (IMG:style_emoticons/default/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.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #6





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Ciasteczka będą najlepszym wyjściem, ale powinny zawierać tylko id przedmiotów
Go to the top of the page
+Quote Post
Fifi209
post
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Ilości już nie? ;]
Go to the top of the page
+Quote Post
toaspzoo
post
Post #8





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Ilość można zapisywać w bazie danych, oraz ją sukcesywnie kasować (rekordy > 1d)
Go to the top of the page
+Quote Post
Fifi209
post
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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.
Go to the top of the page
+Quote Post
toaspzoo
post
Post #10





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Jakiego crona ?
Z każdym wejściem może sprawdzać, a takie obciążenie to nic dla serwera.

Go to the top of the page
+Quote Post
by_ikar
post
Post #11





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


#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.
Go to the top of the page
+Quote Post
Fifi209
post
Post #12





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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ć!
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: 24.08.2025 - 23:47