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
lukaskolista
post
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


wiec nie wiem dlaczego dla uzytkownika 1 mialo by cache'owac liste uzytkownika 2.

Przy okazji jedynym slusznym rozwiazaniem jest cache wynikow zapytania SQL, jezeli dobrze napiszesz zapytanie to wszystko bedzie ok

Ten post edytował lukaskolista 12.04.2011, 12:39:22
Go to the top of the page
+Quote Post
skleps
post
Post #3





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

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


Cytat(lukaskolista @ 12.04.2011, 13:36:48 ) *
wiec nie wiem dlaczego dla uzytkownika 1 mialo by cache'owac liste uzytkownika 2


bo jeśli dla użytkownika 1 wpiszesz selected przy np. opcji 3:
  1. 1.
  2. <select name="A">
  3. <option selected>3</option>
  4. </select>


i tak zapiszesz do pliku cache, to gdy użytkownik 2 dostanie dane z tego pliku cache, to będzie miał od razu wybraną opcję 3:
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: 3.10.2025 - 13:14