Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Prosty warunek IF
Forum PHP.pl > Forum > Przedszkole
ziomal511
Witam. Chciałbym zrobić stronę z filmami online.
I za każde obejrzenie filmu o ID jakimś tam odejmowało by punkt.
Korzystam z PHP-Fusion i eXtreme System Point.
Mogło by to wyglądać tak:
JEŚLI UŻYTKOWNIK ZOBACZY FILM O ID JAKIMŚ TO ODBIERA -1 PKT. LECZ JEŚLI ZOBACZY GO PONOWNIE TO NIC. LECZ JEŚLI NIE POSIADA PUNKTÓW = NIE POKAZUJ
Doradzili mi zrobić to na podstawie bazy danych.
Tak więc:
specjalne pole w bazie które pobiera ID filmu i spisuje je jedno po drugim danemu użytkownikowi, sprawdza jeśli dane ID znajduje się w polu nie
pobiera ponownie pkt, jeśli nie ma to dodaje jednoczenie pobierając pkt .

Tylko nie wiem jak to zrobić w kodzie.
Teoria dużo, praktyka zero. biggrin.gif
rytek
No to tak:
Zakładasz tabelę obejrzane_filmy, składającą się z id_user i id_filmow.

A teraz kod. Nie wiem czy działa, pisałem na szybko, nazwy pól i tabel ustaw pod siebie. Nie wiem czy działa wyrażenie regularne, musisz sprawdzić.
  1. //sprawdzenie, czy zalogowany
  2. if(iMEMBER)
  3. {
  4. //pobranie liczby punktów
  5. $punkty=db_result(db_query("SELECT punkty FROM fusion_eps WHERE user_id='".$userdata['user_id']."' LIMIT 1"),0);
  6. //pobranie filmów
  7. $filmy=db_result(db_query("SELECT id_filmow FROM fusion_obejrzane_filmy WHERE id_user='".$userdata['user_id']."' LIMIT 1"),0);
  8. //pobranie identyfikatora aktualnie przeglądanego filmu
  9. $id_filmu=$_GET['film_id'];
  10. //sprawdzenie, czy film ogladany
  11. if(preg_match("/[F]{1}".$id_filmu."[F]{1}/", $filmy)
  12. {
  13. //kod odpowiedzialny za wyświetlenie filmu
  14. }
  15. else
  16. {
  17. //sprawdzenie, czy jest wystarczająca ilość punktów
  18. if ($punkty>0)
  19. {
  20. //odjęcie punktów
  21. db_query("UPDATE fusion_eps SET punkty=punkty-1 WHERE user_id='".$userdata['user_id']."'");
  22. db_query("UPDATE fusion_obejrzane_filmy SET id_filmow='".($filmy." F".$id_filmu."F")."' WHERE id_user='".$userdata['user_id']."'");
  23. //kod odpowiedzialny za wyświetlenie filmu
  24. }
  25. else
  26. {
  27. //kod odpowiedzialny za wyświetlenie błędu
  28. }
  29. }
  30. }
  31. else
  32. {
  33. //kod odpowiedzialny za wyświetlenie komunikatu dla niezalogowanego
  34. }
ziomal511
JESTEŚ WIELKI.!
Jeszcze takie pytanie.
Jak mam plik gdzie są filmy taki: embed.php i filmy (ID) są np. tak: embed.php?url=2 (tabela kroax_id)
to $_GET['film_id']; daje $_GET['kroax_id']; tak?
rytek
Nie używałem Kroaxa, więc niewiele Ci tutaj pomogę, ale...
Jeżeli to url=2, oznacza, że otwierany jest film o id = 2, to tam musisz dać $_GET['url'].
ziomal511
Czyli całość by wyglądała tak:

  1. //sprawdzenie, czy zalogowany
  2. if(iMEMBER)
  3. {
  4. //pobranie liczby punktów
  5. $punkty=db_result(db_query("SELECT points_normal FROM fusion_users WHERE user_id='".$userdata['user_id']."' LIMIT 1"),0);
  6. //pobranie filmów
  7. $filmy=db_result(db_query("SELECT id_filmow FROM fusion_obejrzane_filmy WHERE id_user='".$userdata['user_id']."' LIMIT 1"),0);
  8. //pobranie identyfikatora aktualnie przegl?danego filmu
  9. $id_filmu=$_GET['url'];
  10. //sprawdzenie, czy film ogladany
  11. if(preg_match("/[F]{1}".$id_filmu."[F]{1}/", $filmy)
  12. {
  13. //kod odpowiedzialny za wyświetlenie filmu
  14. }
  15. else
  16. {
  17. //sprawdzenie, czy jest wystarczaj?ca ilość punktów
  18. if ($points_normal>0)
  19. {
  20. //odjęcie punktów
  21. db_query("UPDATE fusion_users SET points_normal=points_normal-1 WHERE user_id='".$userdata['user_id']."'");
  22. db_query("UPDATE fusion_obejrzane_filmy SET id_filmow='".($filmy." F".$id_filmu."F")."' WHERE id_user='".$userdata['user_id']."'");
  23. //kod odpowiedzialny za wyświetlenie filmu
  24. }
  25. else
  26. {
  27. //kod odpowiedzialny za wyświetlenie błędu
  28. }
  29. }
  30. }
  31. else
  32. {
  33. //kod odpowiedzialny za wyświetlenie komunikatu dla niezalogowanego
  34. }


?
rytek
if ($points_normal>0)
zamień na:
if ($punkty>0)

to jest zmienna, której nazwy nie potrzebujesz zmieniać.
ziomal511
Problem rozwiązany.! Wielkie dzięki.
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.