Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z kupowaniem przedmiotow w sklepie
Rafiks1992
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 27.06.2017

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


Siemka ponownie (IMG:style_emoticons/default/wink.gif) dotarlem do kolejnego etapu, wczoraj dodalem nowa tabele o nazwie shop w ktorej umiescilem 3 kolumny id, cena, nazwa a takze dodalem tam 4 losy do kupienia: mikrolos, minilos, megalos, hiperlos ustawiajac oczywiscie id na A.I a takze ceny tych losow i nazwy. W tabeli users dodalem takze kolumny: mikrolos, minilos, megalos, hiperlos aby miec mozliwosc wyswietlenia ile dany uzytkownik posiada tych losow. Poogarnialem wszystko i zmienilem w mysql losowe dane dla kazdego goscia aby sprawdzic czy dziala i faktycznie wyswietla ilosc losów w Twój profil. Tylko teraz mam problem ze skryptem kupowania kolejnych losów. Stworzylem nowy plik i nazwie shop.php z takim kodem:

  1. <?php
  2.  
  3. $title = "Sklep";
  4. include_once 'header.php';
  5.  
  6. if (!$session->is_logged_in()) {
  7. $session->message("Musisz sie zalogowac!", "success");
  8. redirect_to("login.php");
  9. }
  10. ?>
  11.  
  12. <h1>Sklep</h1>
  13.  
  14. <?php
  15. echo 'Witamy w sklepie, mozesz tutaj kupic losy.';
  16. ?> <br><br><br>
  17.  
  18. <?php
  19. $userdata = User::getUser($session->user_name);
  20. echo 'Masz aktualnie: ' .$userdata->money. 'zl.';
  21. ?> <br>
  22.  
  23. <?php
  24. echo 'Kup:';
  25. ?> <br>
  26.  
  27. <?php
  28.  
  29. if(isset($_POST['kup_los'])) {
  30. if(!empty($_POST['mikrolos'])) {
  31. $mikrolos = ($_POST['mikrolos']*$cost);
  32. if($money >= $mikrolos) {
  33. mysql_query("UPDATE users SET mikrolos='".$_POST['mikrolos']."' WHERE id=".$pokaz['id']);
  34. mysql_query("UPDATE users SET money=money-".$cost." WHERE id=".$pokaz['id']);
  35. } else {
  36. echo "Nie stać cie";
  37. }
  38. }
  39. }
  40.  
  41.  
  42.  
  43. ?>
  44.  
  45. <form action='' method='post' class='form'>
  46. Mikrolos: <input type='text' name='mikrolos' value=''>
  47. <button name='kup_los' type='submit'>Kup</button>
  48. </form>
  49.  
  50. <?php
  51.  
  52. include_once 'footer.php';
  53.  
  54. ?>



Zrobilem narazie tylko ten pierwszy los czyli mikrolos do kupienia, jednak gdy na stronie w formularzu wpisze chocby 1 - a stac mnie na ten los to nic sie nie dzieje, moglby mi ktos wyjasnic dlaczego?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Rafiks1992
post
Post #2





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 27.06.2017

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


Probuje uczyc sie piszac i praktykujac moze stad tyle prostych bledow (IMG:style_emoticons/default/tongue.gif) tak czy inaczej dobre naprowadzenie ze zrobieniem nowej tabeli oczywiscie stworzylem nowa tabele o nazwie eq i dalem w niej kolumny id, uid, name, count - powinno byc lepiej tylko teraz to polaczyc

New:


Wzialem sobie troszke do serca Twoja porade ale walcze takze z moja praktyka bo lubie uczyc sie piszac a nie siedziec i czytac ksiazki dlatego znalazlem na youtube filmik jak gosc pisze gre via www i tworzy tam sklep opisuje krok po kroku jak to robi i w sumie wszystko wyglada o wiele przejrzysciej i lepiej jak obejrzalem i porobilem podobnie do niego ale jednak nie dziala mi kilka rzeczy i moze tutaj ktos by cos dopatrzyl?

kod aktualnie wyglada tak: shop.php

  1. <?php
  2.  
  3. require_once 'includes/config.php';
  4.  
  5. $title = "Sklep";
  6. include_once 'header.php';
  7.  
  8. if (!$session->is_logged_in()) {
  9. $session->message("Musisz sie zalogowac!", "success");
  10. redirect_to("login.php");
  11. }
  12.  
  13. ?>
  14.  
  15. <h1>Sklep</h1>
  16.  
  17. <?php
  18. echo 'Witamy w sklepie, mozesz tutaj kupic losy do naszych gier.';
  19. ?> <br><br><br>
  20.  
  21. <?php
  22. $userdata = User::getUser($session->user_name);
  23. echo 'Masz aktualnie: ' .$userdata->money. 'zl.';
  24. ?> <br>
  25.  
  26. <?php
  27. echo 'Kup:';
  28. ?> <br>
  29.  
  30. <?php
  31.  
  32. function kup_los($id){
  33. $userdata = User::getUser($session->user_name);
  34. $tekst='Niewykonana funkcja';
  35. $los=mysql_query("SELECT * FROM shop WHERE id=$id LIMIT 1");
  36. if (mysql_num_rows($los)===1){
  37. $los=mysql_fetch_assoc($los);
  38. $user=mysql_query("SELECT * FROM users, eq WHERE users.id=eq.uid LIMIT 1");
  39. $user=mysql_fetch_assoc($user);
  40. var_dump($los,$user);
  41. if ($user['money']>=$los['cost']){
  42. $tekst='Przedmiot kupiony!';
  43. mysql_query("INSERT INTO eq (id,uid,name,cost,count) VALUES ('$user','$los[id]','$los[name]','$los[cost]')");
  44. }
  45. }
  46. return $tekst;
  47. }
  48.  
  49. echo kup_los(1);
  50.  
  51. ?>
  52.  
  53.  
  54.  
  55. <?php
  56.  
  57. ini_set('display_errors', 1);
  58. ?>
  59.  
  60. <?php
  61.  
  62. include_once 'footer.php';
  63.  
  64. ?>


A wiec do rzeczy, kolega ktory polecil mi tutaj w poscie dodanie osobnej tabeli z kolumnami id cena ilosc mial bardzo trafiony pomysl, zrobilem tak a takze dodalem jeszcze jedna nowa rzecz (ktora mi wlasnie nie dziala (IMG:style_emoticons/default/biggrin.gif) ) uid - user id. Musi to byc poniewaz w tej tabeli musze wiedziec ktory uzytkownik ile ma jakich losów, logiczne oczywiscie. Dodatkowo jest wykonanie funkcji kup_los z id 1 - w tabeli shop pod id1 jest mikrolos, dalem tak specjalnie dla sprawdzenia czy po kliknieciu sklep i odswiezeniu dodaje rekord i kupuje ten wlasnie los i tak jest, tylko teraz jedna rzecz mnie martwi - w mysql sprawdzam dodany rekord i wszystko ladnie pieknie dziala poza wlasnie dodaniem prawidlowego UID - dodaje jako 0 tylko dlaczego? edit: zapomnialem jeszcze jedno, dodalem var_dumpa aby sprawdzic co wyswietla mi on pod $los a takze pod $user i $los wyswietla wszystkie dane prawidlowo z tablicy ale $user wyswietla mi dane uzytkownika o id1 a jak zaloguje sie na inne konto ktore sobie sam oczywiscie utworzylem ma id 2 ale wciaz wyswietla mi dane z tego pierwszego konta

Ten post edytował Rafiks1992 30.06.2017, 22:07:04
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 14:32