Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]dolna granica odejmowania wartości rekordu (gra klikacz)
Forum PHP.pl > Forum > Przedszkole
brychu
http://graklikacz.cba.pl/
Jest to tylko ćwiczenie. Wykonując konkretny projekt mam możliwość główkowania i rozwiązywania wielu nowych problemów, ale niestety teraz utknąłem.

Dodawanie i odejmowanie wartości rekordów działa. Chciałem ograniczyć odejmowanie w wypadku, gdy dany rekord nie ma odpowiedniej wartości. Pokażę na przykładzie.
Za kliknięcie doda 5 złota i odejmie 1 brązu. W sytuacji, gdy wartość rekordu 'braz' będzie mniejsze niż 1 ma zostać wyświetlony komunikat "Zbyt mała ilość brązu!" zamiast wykonywania akcji. Niestety komunikat pojawia się od razu, zamiast po osiągnięciu dolnej granicy.

  1. $iloscprzyznawanegozlota = 5;
  2. $kosztprodukcjizlotawbrazie = 1;
  3. if ($_GET["action"] == "dodajzloto") {
  4. if ($baza[braz] < 1){
  5. $dodajzloto = mysql_query("UPDATE baza SET zloto = zloto+$iloscprzyznawanegozlota");
  6. $zaplaczazlotobrazem = mysql_query("UPDATE baza SET braz = braz-$kosztprodukcjizlotawbrazie");
  7. }
  8. else{
  9. $zamalosurowców = '<font color="red"> <br> Zbyt mała ilość brązu!</b></font>';
  10. }}



Gdyby komuś była potrzeba struktura tabeli mysql:
nazwa tabeli: baza
id, nazwa, mapa, diament, zloto, braz

Później dodam do tego rejestrację, logowanie, sesję, żeby mogło grać kilka osób na raz i będę dążył do tego, jak zrobić lepszą grę, w której nie wystarczy wpisać w pasku odpowiedniego adresu, żeby wykonać akcję. No i oczywiście nie wypada, żeby tak się gra odświeżała po każdym kliknięciu.
Rysh
  1. UPDATE baza SET zloto = zloto+$iloscprzyznawanegozlota, braz = braz-$kosztprodukcjizlotawbrazie WHERE braz >= $kosztprodukcjizlotawbrazie
brychu
Tak To by się zgadzało. Proste i logiczne.
A gdybym chciał dodać, że ma zabierać jeszcze jeden surowiec?
Na razie mogę ustalić WHERE tylko dla "jednej pozycji". Gdy dodam więcej niż jedno WHERE, skrypt przestaje działać.

  1. $kosztprodukcjidiamentuwbrazie = 8;
  2. $kosztprodukcjidiamentuwzlocie = 5;
  3. $iloscprzyznawanegodiamentu = 1;
  4. if ($_GET["action"] == "dodajdiament") {
  5. $dodajdiament = mysql_query("UPDATE baza SET diament = diament+$iloscprzyznawanegodiamentu, braz = braz - $kosztprodukcjidiamentuwbrazie, zloto = zloto-
  6. $kosztprodukcjidiamentuwzlocie WHERE zloto >= $kosztprodukcjidiamentuwzlocie");
  7. }
Rysh
  1. UPDATE baza SET cos=1 WHERE cosinnego > 4 AND jeszczecosinnego > 10
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.