Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] jak zrobić cache do listy rozwijanej?
skleps
post
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

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


Zawartość tabeli A wyświetlam jako lista rozwijana <select>, wszystko oczywiście generowane w php.
Zawartość tej tabeli prawie że się nie zmienia więc aż się prosi o robienie jakiegoś cache, żeby nie obciążać bazy danych tym samym zapytaniem.
Zrobienie takiego cache to banał.

Problem robi się, gdy User zaznaczy w liście rozwijanej np. opcję 3 i trzymamy ten wybór w zmiennej sesyjnej. Później ta opcja powinna być automagicznie ustawiona przez całe jego chodzenie po serwisie, dopóki nie zmieni sobie (czyli chodzi o to, ze któraś opcja musi być selected).
Problem w tym, że jeśli zapiszemy do pliku cache ten wybór, to wszystkim innym internautom też będzie się automagicznie wybierałą opcja 3.

Ja wykoncypowałem 2 wyjścia i oba mi się nie podobają:

1. robimy kilka plików cache - jeden dla listy z niewybraną żadną opcją i po jednym dla każdej wybranej opcji
2. robimy pliki cache i wiążemy te pliki z danym internautą przez np. jakiś identyfukator przechowywany w sesji.

Czy jest jakaś inna, łatwiejsza i przyjemniejsza metoda obejścia problemu?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
skleps
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 9
Dołączył: 3.03.2011

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


Na razie w ogóle nie wyglądają, bo zastanawiam się jak to rozwiązać.

Na razie widzę algorytm tak, że funkcja generująca tą listę:
1. sprawdza czy istnieje plik cache.
2. jak istnieje to zaczytuje treść pliku i ją zwraca jako swoją odpowiedź. koniec działania funkcji.
3. jeśli plik cache nie istnieje, to zadaje odpowiednie pytanie bazie, następnie tworzy kod listy, zapisuje ją do nowoutworzonego pliku cache i zwraca listę. koneic działania.

a jak może wyglądać taka lista? Ot choćby tak:

  1. <select name="A">


zabawa się robi, gdy trzeba gdzieś wcisnąć "selected" przy odpowiedniej opcji
Go to the top of the page
+Quote Post

Posty w temacie


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: 16.10.2025 - 02:41