Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sesja, poprzedni wiersz tabeli MySQL
Forum PHP.pl > Forum > Przedszkole
x1mrdonut1x
Siema, mam stronę, gdzie za każdym refreshem wybieram losową tabelę w mysql i wyświetlam jej dane. Chciałbym sprawdzić jakie ID miałem poprzednio aby po każdym refreshu wyświetlała się inna strona niż poprzednia. Próbowałem to zrobić z sesją -

  1. if ($ile >1)
  2. {
  3. while ($check == $id){
  4. $result = mysqli_query($con,"SELECT * FROM main WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM main ) ORDER BY id LIMIT 1;");
  5.  
  6. while($row = mysqli_fetch_array($result))
  7. {
  8. $movie=$row['movie'];
  9. $spoil=$row['spoil'];
  10. $img=$row['image'];
  11. $id=$row['id'];
  12. }
  13. echo "id:", $id, "check:",$check;
  14. }
  15. }
  16. else{
  17. $result = mysqli_query($con,"SELECT * FROM main WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM main ) ORDER BY id LIMIT 1;");
  18.  
  19. while($row = mysqli_fetch_array($result))
  20. {
  21. $movie=$row['movie'];
  22. $spoil=$row['spoil'];
  23. $img=$row['image'];
  24. $id=$row['id'];
  25. }
  26. $check=$id;
  27. }


gdzie $ile to jest liczba sekund w danej sesji. To nie działa chyba dlatego, że ten $check mi się resetuje po każdym refreshu tongue.gif Pomożecie? biggrin.gif
sajegib
zrób tak w skrypcie - od początku
- sprawdz czy istnieje zmienna sesyjna z poprzednia wartoscia -> jesli tak to losuj bez niej, jesli nie to losuj z calosci
na koncu skryptu zapisz wylosowana rartosc
x1mrdonut1x
nie rozumiem haha.gif
sajegib
  1. if(isset($_SESSION['ostatni_wynik'])){
  2. //losuj z ktorej tabeli brac wyniki z wylaczeniem rekordu ostatni wynik
  3. }
  4. else{
  5. //losuj ze wszystkich
  6. }
  7. //tutaj pobierasz dane
  8.  
  9.  
  10. $_SESSION['ostatni_wynik'] = //aktualnie wylosowana tabela


coś w tym rodzaju
x1mrdonut1x
  1.  
  2.  
  3. if(isset($_SESSION['check'])){
  4. $result = mysqli_query($con,"SELECT * FROM main WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM main ) AND id != '".$check."' ORDER BY id LIMIT 1;");
  5. }
  6. else{
  7. $result = mysqli_query($con,"SELECT * FROM main WHERE id >= (SELECT FLOOR( MAX(id) * RAND()) FROM main ) ORDER BY id LIMIT 1;");
  8. }
  9.  
  10. $row = mysqli_fetch_array($result);
  11. $id=$row['id'];
  12.  
  13. $_SESSION['check'] = $id;
  14. $check = $_SESSION['check'];


Zrobiłem tak i niestety nie działa tongue.gif
nospor
1) Po co ta nieuprzejmośc w postaci języka? Dobrze ci radzono, a że nie potrafisz zrobić to stan przed lustrem i sobie pokaż język a nie pomagającemu....

2) "Nie działa" czyli co się dzieje lub nie dzieje?

3) W zapytaniu używasz zmiennej $check, którą definiujesz znacznie później.... myślisz że się ona sama w magiczny sposób przeniesie?

4) Włącz wyświetlanie błędów, tu masz napisane jak
Temat: Jak poprawnie zadac pytanie
I ogólnie zapoznaj się z tym tematem i naucz opisywać problem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.