jensej 2 Zgłoś post Napisano Lipiec 3, 2011 Witam. if($jendrek >= 300){ $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` + 1 WHERE `id` =".$pkt."; "); $SQL->query("UPDATE `accounts` SET `stan`= 1 WHERE stan = 0 `id` =".$pkt." LIMIT 1;"); } nie moge wymyślić. Chodzi o to że jesli if($jendrek >= 300) jest prawdą ma wykonać się $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` + 1 WHERE `id` =".$pkt."; "); no i wykonuje jednak że przy każdym odświeżeniu strony dodaje punkty gdy if jest prawdą.. kiedy wprowadziłem stan = 1 to wykonuje się jeden raz. Jednak chciałbym aby można to było wykonywać wiecej razy ale nie przy odświeżeniu strony. Przykład: Wybiorę na swoim koncie że Strone polecił mi "Mistrz" gdy spełni on if($jendrek >= 300) na jego konto wędruje 1 punkt premium. wykona się stan =1 Gdy ten Mistrz poleci stronę komuś jeszcze. i spełni on if($jendrek >= 300) nie doda mu znów punktu gdyż stan =1 . Proszę i pomoc. Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Lipiec 3, 2011 Zapisuj ciastko sesyjne z adnotacją, że user już głosował. Druga metoda to - w momencie generowania formularza generujesz też jakiegoś hasza, zapisujesz go do bazy i dodajesz do owego formularza jako ukryte pole. W momencie aktualizacji (w sumie bezpośrednio przed nią) sprawdzasz, czy hasz istnieje, a po dokonaniu aktualizacji usuwasz go z bazy. W ten sposób wyeliminujesz odświeżanie przez f5 (bo żeby móc wysłać jeszcze raz formularz, to trzeba go od nowa ściągnąć). Udostępnij ten post Link to postu Udostępnij na innych stronach
jensej 2 Zgłoś post Napisano Lipiec 3, 2011 Łatwiejszych rozwiązań nie ma? Udostępnij ten post Link to postu Udostępnij na innych stronach
is_wm 287 Zgłoś post Napisano Lipiec 4, 2011 Po if($jendrek >= 300){ zrób zapytanie SQL - SELECT, następnie kolejny if w którym sprawdzisz czy stan != 1. Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Lipiec 4, 2011 (edytowany) Może: $SQL->query("UPDATE `accounts` SET `premium_points` = `premium_points` + 1 WHERE `stan` = 0 AND `id` =".$pkt."; "); ? Edytowano Lipiec 4, 2011 przez Misiek08 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach