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





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Cytat(Natalka @ 3.05.2011, 14:57:17 ) *
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.

Wybacz , co innego myślałem co innego napisałem.
  1. <?php
  2. //Dane testowe ... START
  3. $_SESSION['poprzednie'] = array(1,17,71,544,324,7544,123,65); // To sie nazbiera samo.
  4. $aktualny = 324;// ID Aktualnego obrazka .
  5. echo '<pre>';
  6. print_r($_SESSION['poprzednie']);
  7. echo '</pre>';
  8. // Dane testowe FINISH
  9.  
  10. if(!in_array($aktualny,$_SESSION['poprzednie'])){
  11. $_SESSION['poprzednie'][] = $aktualny;
  12. }
  13. if(in_array($aktualny,$_SESSION['poprzednie'])){
  14. foreach($_SESSION['poprzednie'] as $klucz => $wartosc){
  15. if($wartosc == $aktualny){
  16. $numer_poprzedniego_w_arrayu_sesji_to = $klucz;
  17. echo 'Wcześniej przeglądałeś ID : '.$_SESSION['poprzednie'][$numer_poprzedniego_w_arrayu_sesji_to-1];
  18. echo '<br/>';
  19. }
  20. }
  21. }
  22. echo 'Aktualnie przeglądasz ID : '.$aktualny;
  23. echo '<br/>';
  24. if(isset($_SESSION['poprzednie'][$numer_poprzedniego_w_arrayu_sesji_to+1])){
  25. echo 'A potem przeglądałeś obrazek o ID : ';
  26. echo $_SESSION['poprzednie'][$numer_poprzedniego_w_arrayu_sesji_to+1];
  27. }
  28. ?>
Dodałem dane testowe dla przejrzystości .

Ten post edytował nekomata 3.05.2011, 18:52:00
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: 6.10.2025 - 19:10