Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Przycisk "Poprzedni" przy rekordach RAND(), Jak to zrobić?
Natalka
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 6
Dołączył: 28.10.2009
Skąd: że znowu...

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


Witam wszystkich!

Mam duży problem odnośnie powracania do ostatnio oglądanych materiałów w portalu.
Otóż sprawa wygląda tak, w portalu wyświetlają się obrazki i jest opcja następny która generuj obrazek LOSOWO wybrany.

Dla przykładu

Oglądamy obrazek ID 1331
Następny to ID 4411
Następny to ID 6628
Następny to ID 454

I teraz chcę zrobić sobie historię w sesjach by po kliknięciu Poprzedni wracało do tego który ostatnio był oglądany, w wypadku gdyby komuś spodobał się jakiś obrazek a przeleciał za szybko do następnego.

W tym wypadku chcę zastosować coś takiego:

Sesja HISTORIA = '454, 6628, 4411, 1331';

Gdzie po kliknięciu na poprzedni mogę sobie wrócić spowrotem, próbuję kilkoma sposobami jednak nic mi to nie daje.

Sprówałam więc sposobem innym troche PROSTSZYM, aby sprawdzić czy to zadziała:

Kod
if(!empty($_SESSION['wsrodku'])){
            $srodek=$_SESSION['wsrodku'];
            $_SESSION['poprzedniObrazek'] = $srodek;
            
            $teraz=$_SESSION['terazObr'];
            $_SESSION['wsrodku'] = $teraz;
            
            $_SESSION['terazObr'] = $id;
            
                        echo $_SESSION['poprzedniObrazek'];
            
            
        }
        else {
            $poprzedni = '';
            if(!empty($_SESSION['terazObr'])) {
                $teraz=$_SESSION['terazObr'];
                $_SESSION['wsrodku'] = $teraz;
                
                $_SESSION['terazObr'] = $id;
            }    
            else {
                $_SESSION['terazObr'] = $id;
            }
        }


Wiem wiem wygląda strasznie, ale na kartce rozpisując sobie to dokładnie przed rozpoczęciem pisania, powinno to działać, napisałam i niestety
nie działa.

Przyjmijmy liczby dla konkretnych sesji

PoprzedniObrazek = 1 (to ten do którego mamy wrócić po kliknięciu na poprzedni)
wsrodku = 2 (wartość następnego powrotu)
teraz = 3 (obrazek który teraz ogladamy)

I przykładzie powyżej powinno to być dziedzioczne 1 przejmuje 2, 2 przejmuje 3, a 3 otrzymuje wartość aktualnie oglądanego obrazka.

Niestety u mnie wartość 1 i 2 jest ciągle taka sama.


Czy macie jakieś pomysły? rady jak coś takiego zrobić, nigdy w życiu nie miałam z czymś takim doczynienia i jest to mój pierwszy raz, nawet nie wiem jak to logicznie zrobić by powracać do ostatnio oglądanych obrazków.

Pomożecie mili Państwo?
Dziękuje
Natalia (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Natalka
post
Post #2





Grupa: Zarejestrowani
Postów: 59
Pomógł: 6
Dołączył: 28.10.2009
Skąd: że znowu...

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


Sprawdzam i niestety to nie działa.


Owszem zapisuje mi się to ładnie

Kod
Array ( [-1] => 113 [0] => 359 [1] => 514 [2] => 1295 [3] => 644 [4] => 528 [5] => 644 [6] => 296 [7] => 152 [8] => 1235 [9] => 866 [10] => 1483 )



Tylko że problem jest taki że jak wracam w tył, to przenosi mnie do 866 jak kolejny raz klikam w tył to już wracam do 1483 i to wszystko.
Zmodyfikowałam to jeszcze w taki sposób aby po odświeżeniu nie dodawało mi jeszcze raz tego samego ID, oraz w momencie gdy przechodzę do POPRZEDNI to żeby nie dodawało mi rekordu na początku o tym ID.



Cytat(nekomata @ 3.05.2011, 15:36:16 ) *
Możesz sobie "nawalić sesji" np. $_SESSION['poprzedni'][$id_obrazka] i jako wartość wstawić poprzedni... sprawdzać issetem itd.



Cóż da mi to że zapisszę sobie :

$_SESSION['poprzedni'][1345]
$_SESSION['poprzedni'][51]
$_SESSION['poprzedni'][616]
$_SESSION['poprzedni'][1566]

Powiedz mi w jaki sposób wrócić do 1345 a następnie do 51 i 616?
Oraz po kliknięciu na następny aby on znajdował się na liście w taki sposób aby był pierwszy do którego powrócę.

Niestety nie potrafię tego logicznie zrozumieć nawet, owszem na kartce rozpisałam przetestowałam na kilka różnych sposobów i działa.
Ale w "życiu" niestety nie działa.
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: 12.10.2025 - 05:14