Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dodawanie do zmiennej
Forum PHP.pl > Forum > PHP
Th0e
Witam. Bawie się ostatniow PHP i chciałbym zrobić takie coś, że gdy wpisujemy do pola 1 i wysyłamy to za każdym razem do pewnej zmiennej dodaje nam pewną wartość. oto mój skrypt (nie śmiejcie sie - bawie się w robienie gry biggrin.gif)

Kod
<?php
$level = 1;
$exp = 0;
if ($exp > 100)
$level +=1;
?>

<h2>walka</h2>
<form method="post" />
<input type="text" name="wartosc" />
<input type="submit" value="walcz!" />

<?php
$otrzymane = $_POST['wartosc'];

if ($otrzymane == 1)
{
$exp += 10;
}

?>

<h2>statystyki postaci</h2>
<?php
echo "poziom $level <br />";
echo "doswiadczenie $exp <br />";
?>


jak widać za każdym razem gdy wyślemy w formularzu 1 powinno nam dodać 10 do zmiennej exp. a dodaje to tylko raz, potem już nie. za pewne trzeba to zrobić jakoś z pętlą, ale próbowałem i nie mogę sobie poradzić.
Nagrodzę lajkami. Pozdrawiam.
sebastian.rozmus
Potrzebujesz bazy danych ; )

A jeśli to tylko zabawa to możesz pobawić się sesjami, ale miej świadomość że dane w sesji nie są trwałe ;]
Th0e
Cytat(sebastian.rozmus @ 19.09.2012, 20:57:42 ) *
Potrzebujesz bazy danych ; )

A jeśli to tylko zabawa to możesz pobawić się sesjami, ale miej świadomość że dane w sesji nie są trwałe ;]



na prawdę nie da się zrobić tego jakoś prościej ? jeszcze nie miałem styczności z MYSQL
Szymciosek
Dokładnie, najlepsze rozwiązanie - baza danych

Tworzysz sobie tam tabele z kolumną np USER/EXP
Uzupełniasz ją początkowo np Janek/0
a później za każdym razem, akcja po Twoim kliku robi UPDATE w bazie i dodaje do tego co jest w EXP + 10.

Ewentualnie możesz się bawić z jakimś plikiem txt - obsługa file w php... tylko niestety też musisz się douczyć.
Th0e
jeszcze jakieś propozycje?
Szymciosek
Nie ma więcej.
Za każdym wysłaniem cały plik jest przeładowywany i ładowany od nowa. Więc masz wybór:

Sesje - trwałe, ale do czasu wyłączenia/wyczyszczenia przeglądarki - zależne od ustawień
Cookies - Trwałe czasowo przy poruszaniu się po stronie
Baza danych - najlepsze do takich rzeczy
Txt - może być, ale musisz zobaczyć jak się obsługuje pliki, odczytuje wiersze itd - to jest proste wystarczy poczytać.

Nie wiem czy więcej propozycji dostaniesz.
sebastian.rozmus
Wczytywanie:

  1. $exp = file_get_contents('plik.php');


Zapis

  1. file_put_contents('plik.php', $exp);
Th0e
Kod
<?php
$level = 1;
$exp = 0;
if ($exp > 100)
$level +=1;
?>

<h2>walka</h2>
<form method="post" />
<input type="text" name="wartosc" />
<input type="submit" value="walcz!" />

<?php
$potworek = 10;

$otrzymane = $_POST['wartosc'];

if($otrzymane == 2)
$expplik = fopen("exp.txt", "w");
if($otrzymane == 1)
{
$exp = $exp+$potworek;
file_put_contents("exp.txt",$exp);
}
echo $fopen = file_get_contents("exp.txt");


?>

<h2>statystyki postaci</h2>
<?php
echo "poziom $level <br />";
echo "doswiadczenie $exp <br />";
?>


w powyższym sposobie spróbowałem zwykłym sposobem, oraz sposobem zapisu plików. najpierw wprowadzając 2 stworzyłem plik, a potem wysyłając 1 powinno dodawać za każdym razem po 10. oba sposoby nie działają, dodaje tylko raz. widocznie trzeba się wziąć za mysql -.-
Szymciosek
Jasne, że trzeba, zdziwisz się jaki jest prosty na takim poziomie jakiego Ty oczekujesz wink.gif
sebastian.rozmus
Zapewne chodzi Ci o :

  1. <?php
  2. $level = 1;
  3. $exp = file_get_contents('exp.php');
  4. if ($exp > 100)
  5. $level +=1;
  6. ?>
  7.  
  8. <h2>walka</h2>
  9. <form method="post" />
  10. <input type="text" name="wartosc" />
  11. <input type="submit" value="walcz!" />
  12.  
  13. <?php
  14. $potworek = 10;
  15.  
  16. $otrzymane = $_POST['wartosc'];
  17.  
  18. if($otrzymane == 2)
  19. $expplik = fopen("exp.txt", "w");
  20. if($otrzymane == 1)
  21. {
  22. $exp = $exp+$potworek;
  23. file_put_contents("exp.txt",$exp);
  24. }
  25. echo $fopen = file_get_contents("exp.txt");
  26.  
  27.  
  28. ?>
  29.  
  30. <h2>statystyki postaci</h2>
  31. <?php
  32. echo "poziom $level <br />";
  33. echo "doswiadczenie $exp <br />";
  34. ?>


No i jeszcze pliczek na lvl chyba wink.gif

Żeby siepobawić to możesz tak robić, ale jesli chcesz zrobić coś co ma działać (szybko i prosto) to poczytaj o bazach danych
Th0e
Cytat(sebastian.rozmus @ 19.09.2012, 21:40:17 ) *
Zapewne chodzi Ci o :

  1. <?php
  2. $level = 1;
  3. $exp = file_get_contents('exp.php');
  4. if ($exp > 100)
  5. $level +=1;
  6. ?>
  7.  
  8. <h2>walka</h2>
  9. <form method="post" />
  10. <input type="text" name="wartosc" />
  11. <input type="submit" value="walcz!" />
  12.  
  13. <?php
  14. $potworek = 10;
  15.  
  16. $otrzymane = $_POST['wartosc'];
  17.  
  18. if($otrzymane == 2)
  19. $expplik = fopen("exp.txt", "w");
  20. if($otrzymane == 1)
  21. {
  22. $exp = $exp+$potworek;
  23. file_put_contents("exp.txt",$exp);
  24. }
  25. echo $fopen = file_get_contents("exp.txt");
  26.  
  27.  
  28. ?>
  29.  
  30. <h2>statystyki postaci</h2>
  31. <?php
  32. echo "poziom $level <br />";
  33. echo "doswiadczenie $exp <br />";
  34. ?>


No i jeszcze pliczek na lvl chyba wink.gif

Żeby siepobawić to możesz tak robić, ale jesli chcesz zrobić coś co ma działać (szybko i prosto) to poczytaj o bazach danych



w czym jest inny twój sposób od mojego:


  1. <?php
  2. $level = 1;
  3. $exp = 0;
  4. if ($exp > 100)
  5. $level +=1;
  6. ?>
  7.  
  8. <h2>walka</h2>
  9. <form method="post" />
  10. <input type="text" name="wartosc" />
  11. <input type="submit" value="walcz!" />
  12.  
  13. <?php
  14. $potworek = 10;
  15.  
  16. $otrzymane = $_POST['wartosc'];
  17.  
  18. if($otrzymane == 2)
  19. $expplik = fopen("exp.txt", "w");
  20. if($otrzymane == 1)
  21. {
  22. $exp = $exp+$potworek;
  23. file_put_contents("exp.txt",$exp);
  24. }
  25. echo $fopen = file_get_contents("exp.txt");
  26.  
  27.  
  28. ?>
  29.  
  30. <h2>statystyki postaci</h2>
  31. <?php
  32. echo "poziom $level <br />";
  33. echo "doswiadczenie $exp <br />";
  34. ?>


? jakoś nie widzę różnicy

dzięki już załapałem smile.gif
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.