Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Przydzielanie punktow uzytkownikow
Forum PHP.pl > Forum > Przedszkole
Lolek13
Witam,

mam problem z jednym zapytaniem. Mam tabele w bazie danych uzytkownik - sa to zarejestrowani uzytkownicy portalu, uzytkownik_typer_football - gdzie sa obstawione przez uzytkownika wyniki spotkan, w tej tabeli jest id uzytkownika z tabeli uzytkownik oraz id zakladu z tabeli typer_football gdzie sa umieszczane przez admina mecze. Sprawdzanie poprawnosci wyniku dziala, teraz chce jednak zrobic przydzielanie prosto do bazy danych odpowiedniej ilosci pkt. Mam to zrobione w ten sposob:
  1. if ($check_set_x == $check_user_x && $check_set_y == $check_user_y) {
  2. echo 'zgadles poprawny wynik 3pkt!';
  3. $ocena = 3;
  4. $query = "UPDATE uzytkownik SET typer_pkt=typer_pkt+$ocena WHERE uzytkownik.id=uzytkownik_typer_football.uid";
  5. }


napis dla kazdego uzytkownika wyswietla sie poprawnie niestety zapytanie nie dziala. Nie dostaje tez komunikatu o bledzie. Jak poprawic to zapytanie ?

Pozdrawiam
PanGuzol
Masz zły warunek where. Nie możesz wykorzystać tej uzytkownik_typer_football.uid wartości tutaj. Jeśli nie masz id użytkownika w żadnej zmiennej w php to powinieneś je pobrać ewentualnie skorzystać z podzapytania.
Lolek13
  1. UPDATE uzytkownik SET typer_pkt=typer_pkt+$ocena WHERE uzytkownik.id=(SELECT uzytkownik_typer_football.uid FROM uzytkownik_typer_football, uzytkownik WHERE uzytkownik_typer_football.uid=uzytkownik.id )


nie bardzo mam pomysl jak to zmodyfikowac, bo nie moge skorzystac z $_session['login'] ani nic w tym stylu
PanGuzol
W jaki sposób identyfikujesz użytkownika w skrypcie? Skąd wiesz, że to właśnie on poprawnie odgadł wynik, masz gdzieś jego id? Masz może id zakładu przynajmniej?
Lolek13
podczas obstawiania GETem pobieram jego id i wstawiam do bazy pod uid.
pozniej:

  1. $uid = mysql_result(mysql_query("SELECT ID FROM uzytkownik WHERE login='" . $_SESSION['login'] . "'")
, a nastepnie:


  1. $check_user_x = mysql_result(mysql_query("SELECT uzytkownik_typer_football.x_obs FROM uzytkownik_typer_football, uzytkownik, typer_football WHERE uzytkownik_typer_football.ZID=typer_football.ID AND typer_football.ID=" . $wynik['ID'] . " AND uzytkownik_typer_football.UID=uzytkownik.id AND uzytkownik_typer_football.UID=" . $uid . ""), 0);
  2. $check_user_y = mysql_result(mysql_query("SELECT uzytkownik_typer_football.y_obs FROM uzytkownik_typer_football, uzytkownik, typer_football WHERE uzytkownik_typer_football.ZID=typer_football.ID AND typer_football.ID=" . $wynik['ID'] . " AND uzytkownik_typer_football.UID=uzytkownik.id AND uzytkownik_typer_football.UID=" . $uid . ""), 0);

PanGuzol
Czyli masz id użytkownika w $uid czyli dajesz je do zapytania które miałeś w pierwszym poście w warunku.

Co do pozostałych dwóch zapytań, mam wrażenie, że niepotrzebnie masz tam tabelę uzytkownik ale mogę się mylić nie znam całej aplikacji.
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.