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





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Może inaczej.
  1. // ...
  2. $przod_tyl = $_GET['jakas_zmienna'];
  3. if(isset($_SESSION['numer_obrazka'])) {
  4. $numer_obrazka = $_SESSION['numer_obrazka'] + $przod_tyl;
  5. $_SESSION['numer_obrazka'] = $numer_obrazka;
  6. } else {
  7. $_SESSION['numer_obrazka'] = 0;
  8. }
  9. if(!isset($_SESSION['historia'][$_SESSION['numer_obrazka']]) {
  10. // losujemy obrazek i zapisujemy id w sesji
  11. $_SESSION['historia'][$_SESSION['numer_obrazka']] = $id_obrazka;
  12. } else {
  13. // pobieramy id obrazka z sesji
  14. $id_obrazka = $_SESSION['historia'][$_SESSION['numer_obrazka']];
  15. }
  16. // wyświetlamy obrazek
  17. // ...


Wtedy id poprzedniego obrazka znajduje się w $_SESSION['historia'][($_SESSION['numer_obrazka']-1)].

Ech, nie zwróciłem uwagi, ale o podobnym rozwiązaniu pisał Ulysess.

Ten post edytował mortus 3.05.2011, 15:52:42
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: 10.10.2025 - 05:56