Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z "kupnem"
Forum PHP.pl > Forum > PHP
awek520
Witam. Piszę sobie taki mały skrypt sklepu w grze Viaa

Mam malutki problem..

Gdy nie mamy "zlota" nie możemy kupic pierwszego przedmiotu, ale już drugi tak.. (Wtedy zloto na postaci wskakuje na wartosc ujemną i dalej możemy kupic ten przedmiot, z czego pierwszego dalej nie- dobrze)
Oto kodzik


  1. <?php
  2. require 'config.php';
  3.  
  4.  
  5.  
  6. function kup_przedmiot($id) {
  7. $tekst='niewykonana funkcja';
  8. $przedmiot=mysql_query("SELECT * FROM przedmioty_sklep WHERE id=$id LIMIT 1");
  9. if (mysql_num_rows($przedmiot)===1) {
  10. $przedmiot=mysql_fetch_assoc($przedmiot);
  11. $gracz=mysql_query("SELECT * FROM users WHERE id=$id LIMIT 1");
  12. $gracz=mysql_fetch_assoc($gracz);
  13. if($gracz['zloto']>=$przedmiot['cena']){
  14. $tekst='kupiłeś przedmiot!';
  15. mysql_query("INSERT INTO przedmioty (gracz, nazwa, cena, typ, hp, obrona, atak)
  16. VALUES ($_SESSION[id],'$przedmiot[nazwa]',$przedmiot[cena],$przedmiot[typ],$przedmiot[hp],
  17. $przedmiot[obrona],$przedmiot[atak])");
  18. mysql_query("UPDATE users SET zloto=zloto-$przedmiot[cena] WHERE id=$_SESSION[id] LIMIT 1");
  19. echo 'Zakupiłeś przedmiot!';
  20. }
  21. else {
  22. $tekst='nie stac cię na ten przedmiot!';
  23. }
  24. }
  25. return $tekst;
  26. }
  27.  
  28.  
  29.  
  30. $wynik=mysql_query("SELECT * FROM przedmioty_sklep");
  31. echo '<table border="1"><tr><td>
  32. Nazwa</td><td>
  33. Atak</td><td>
  34. Obrona</td><td>
  35. Bonus</td><td>
  36. Cena</td><td>
  37. KUP</td></tr>';
  38.  
  39. while ($przedmiot=@mysql_fetch_assoc($wynik)){
  40.  
  41. echo '<tr><td>'.$przedmiot['nazwa'].'</td><td>';
  42. echo ''.$przedmiot['atak'].'</td><td>';
  43. echo ''.$przedmiot['obrona'].'</td><td>';
  44. echo ''.$przedmiot['hp'].'</td><td>';
  45. echo ''.$przedmiot['cena'].'</td><td>';
  46. echo '<a href="?action=sklep&id='.$przedmiot['id'].'">KUP</a></td></tr>';
  47. }
  48. echo '</table>';
  49.  
  50. if($_GET['id']!='') {
  51. $informacja=kup_przedmiot($_GET['id']);
  52. }
  53. ?>
  54. <br>
  55. <?php
  56. if ($informacja!='')
  57. echo 'Sprzedawcja mówi że '.$informacja.'';
  58. ?>



Mam nadzieje że ktoś mi coś pomoże..

Pozdrawiam
aniolekx
Zauważ ze $id które przekazujesz do funkcji wykorzystujesz jako id przedmiotu i id usera, a później przy UPDATE korzystasz już z id które masz w sesji.
awek520
Zmieniłem te
  1. id=$id
na
  1. id=$_SESSION[id]

No i działa.. smile.gif dziękuje Ci bardzo..

Mam nadzieje że w póżniejszym czasie nie wywali błedu znów.

Pozdrawiam

PS. +
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.