Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Trzymanie danych w sesji przed wykonaniem
Forum PHP.pl > Forum > Przedszkole
Deusx
Witam, mam pewien problem,

  1. if($user['rpg_points'] < 10) {
  2.  
  3. message('Musisz mieć 10 punktow, aby zatrudnić oficera.
  4. <br>
  5. <a href=oficerowie.php>Wróć</a>','System');
  6. }
  7.  
  8. $geolog = "UPDATE {{table}} SET ";
  9. $geolog .= "`rpg_points` = `rpg_points` - '10', ";
  10. $geolog .= "`rpg_geologue` = `rpg_geologue` + '1' ";
  11. $geolog .= "WHERE ";
  12. $geolog .= "`id` = '". $user['id']."' ";
  13. doquery( $geolog , "users");
  14. message('Zatrudniłeś geologa.<br><a href=oficerowie.php>Wróć</a>','System');
  15. die();


I przy monotonnym klikaniu (nieustannym, aż się przeładuje), zapytanie wykona się dwa razy, choć mamy punktów na 1 raz.
Gdzieś mi ktoś napisał, że php wykonuje się szybciej niż zapytanie, dlatego się tak dzieje.
Dostałem też od kogoś rozwiązanie, jednak nie wiem jak to ma wyglądać w powyższym kodzie - trzymanie danych w sesji przed wykonaniem.

Dlatego był prosił o przykład na podstawie powyższego kodu.
wookieb
Można zablokować dwukrotne wysłanie formularza. Druga sprawa to użycie transakcji w bazie danych.
Deusx
W jaki sposób zablokować dwukrotne wysłanie formularza ? (bez tokena)

Możesz napisać coś więcej na temat transakcji ?
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.