Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] 5 ostatnio oglądanych produktów
pavelb
post 29.07.2007, 13:50:05
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 1.06.2006

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


Witam!
Proszę o pomoc w napisaniu skryptu 5 ostatnio oglądanych produktów przez użytkownika.
Załóżmy że to jest id produktu $id = $_GET['id'];
Nie mam pomysłu jak je zapisać aby móc wywołać później 5 ostatnich.

Pozdro
Go to the top of the page
+Quote Post
graft
post 29.07.2007, 13:56:47
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 24.03.2007

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


Zapisuj do bazy daty dodania rekordów

  1. <?php
  2. SELECT * FROM tabela WHERE id_produktu='$id' ORDER BY data_dodania desc limit 5
  3. ?>
Go to the top of the page
+Quote Post
pavelb
post 29.07.2007, 14:05:51
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 1.06.2006

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


@graft, nie zrozumiałeś mnie.
Chodziło mi oto że jestem sobie na stronie otwieram jakiś produkt i w okienku ostatnio oglądane zapisze mi się ten produkt, i otwieram inny produkt i kolejny się dopisuje do tego okienka itd i chcę widzieć 5 ostatnio przeglądanych produktów.
Go to the top of the page
+Quote Post
tiraeth
post 29.07.2007, 14:12:48
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


@pavelb: Zapisuj sobie identyfikatory tych produktów do Cookie, albo Sesji (względnie do używanego sposobu identifykacji użytkownika).
Go to the top of the page
+Quote Post
pavelb
post 29.07.2007, 14:16:39
Post #5





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 1.06.2006

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


Tylko w jednej sesji się chyba tego nie da tego zapisać, a jak zapisze w kilku to później jak je wszystkie wywołać.
I jeszcze chce wyświetlić tylko 5 ostatnich.
Go to the top of the page
+Quote Post
tiraeth
post 29.07.2007, 14:39:36
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


Jak się nie da, jak się da?
W session_register" title="Zobacz w manualu PHP" target="_manual daj zserializowaną tablicę z identifykatorami produktów + data odwiedzenia i wsio... przecież sesja wygasa po zamknięciu przeglądarki, a jeśli chcesz trzymać także po jej zamknięciu, to cookies (także zserializowana tablica) na np. 2-3 godziny.

Poczytaj manual i pobaw się, bo akurat to, co chcesz osiągnąć to rzecz banalna...
Go to the top of the page
+Quote Post
RaNdaLLHD
post 29.07.2007, 19:10:05
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 21.06.2007

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


Może się czepiam ale w manualu jest napisane, że nie powinno się już używać session_register()" title="Zobacz w manualu PHP" target="_manual. Oraz jeśli skrypt korzysta z session_register()" title="Zobacz w manualu PHP" target="_manual, nie będzie on działać w środowisku z wyłączoną dyrektywą register_globals()" title="Zobacz w manualu PHP" target="_manual.

Ten post edytował RaNdaLLHD 29.07.2007, 19:10:54


--------------------
. . .
Go to the top of the page
+Quote Post
tiraeth
post 29.07.2007, 20:09:09
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


A czy ja napisałem, że się powinno? Podałem to jako przykład dla sesji. Ja, na przykład, korzystam z sesji trzymanych w sql, obsługiwanych przez swoją klasę - ewentualnie przez frameworka.

Cytat
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().


Proste, jeśli ktoś czyta manuala, to się zorientuje, że należy korzystać z $_SESSION smile.gif

PS. Tak, czepiasz się tongue.gif
Go to the top of the page
+Quote Post
pavelb
post 29.07.2007, 20:35:22
Post #9





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 1.06.2006

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


Mam problem, zapisuje sobie id i date produktu tak:
$_SESSION['ostatnio'][$id] = '1';

i problem jest w tym że ostatnio oglądany produkt jest na końcu.
Jak przesortować to tak żeby ostatni id był pierwszy
Go to the top of the page
+Quote Post
Kicok
post 31.07.2007, 09:49:13
Post #10





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


zapisujesz ostatnio oglądane przedmioty w takiej tablicy:
Kod
$_SESSION['ostatnio'][0] = $id;
$_SESSION['ostatnio'][1] = $id;
$_SESSION['ostatnio'][2] = $id;
$_SESSION['ostatnio'][3] = $id;
$_SESSION['ostatnio'][4] = $id;



Podczas dodawania nowego "ostatnio oglądanego":
1. Sprawdzasz czy $_SESSION['ostatnio'] jest tablicą, jeśli nie (jeszcze nic do niej nie dodano) to ID przedmiotu zapisujesz w: $_SESSION['ostatnio'][0] = $id;
2. Jeśli jest tablicą, to sprawdzasz ile ma elementów (count" title="Zobacz w manualu PHP" target="_manual). Jeśli mniej niż 5, to ID przedmiotu zapisujesz w kolejnym elemencie: $_SESSION['ostatnio'][] = $id;
3. Jeśli ma już 5 elementów, to:
- usuwasz pierwszy element tablicy array_shift" title="Zobacz w manualu PHP" target="_manual
- zapisujesz nowe ID tak jak w pkt. 2


Gdy będziesz chciał wyświetlić te strony, to nie zapomnij, że najpierw będziesz posortować je od tyłu: array_reverse" title="Zobacz w manualu PHP" target="_manual


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 21:31