Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z "kupnem"
awek520
post 5.11.2014, 13:41:01
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
aniolekx
post 5.11.2014, 14:29:54
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
awek520
post 5.11.2014, 15:25:45
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


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. +
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:18