Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dane z bazy, obiekty
WMP
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.01.2006
Skąd: Lublin

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


Witam. Napisałem taki kod:
  1. <?php
  2. if (isset ($_GET['step']) && $_GET['step'] == 'kupon_kupno'){
  3. if ($player -> credits <= $cena) 
  4. {
  5. error ("<span id="typing">Nie masz tyle pieniędzy! Potrzebujesz ".$cena."</span>");
  6.  }
  7. $db -> Execute("UPDATE players SET credits=credits-".$cena." WHERE id=".$player -> id);
  8.  $db -> Execute("UPDATE skarbiec set credits=credits+".$cena." where id=1");
  9.  //Określenie numeru kuponu
  10.  $limit = $db -> Execute("SELECT loteria FROM players ORDER BY loteria DESC LIMIT 0,1");
  11.  $limit1 = $limit -> fields['loteria'];
  12.  $limit -> Close();
  13.  $nr_kuponu = $limit1 ++;
  14.  $nr_kuponu1 = $nr_kuponu -> fields['cena'];
  15.  $nr_kuponu -> Close();
  16.  //END okreslanie numeru kuponu
  17. $db -> Execute("UPDATE players SET loteria=".$nr_kuponu1." WHERE id=".$player -> id);
  18. error ("<span id="typing">Kupiłeś już kupon. Jest to kupon nr. ".$nr_kuponu1."Jeśli zapomnisz jaki masz numer, idź do loterii. Niestety dziśiejszy regula
    min nie zewzwala na posiadanie więcej niż 1 kuponu. Wkrótce powinno to się zmieni
    ć.</span>"
    );
  19.  
  20. }
  21. ?>


Oczywiście to nei jest cały kod. Mam problem z kodem od //Określenie numeru kuponu do error.
Chcę uzyskać aby $nr_kuponu wyswietlała sie w errorze i żeby zapisywało ją w kolumnie loteria.
Prosze aby ktoś dął dobry kod i napisął co źle zorbiłem a co powinno być dobrze, chce się czegoś nauczyć.
TEN KOD NEI DAJE MI SPAĆ smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Straszny kawałek kodu

Cytat
TEN KOD NEI DAJE MI SPAĆ
A mi nie daje spac Twoj straszny tytuł smile.gif
Prosze na PW poropozycje poprawnego tytulu a temat zostanie odblokowany

edit: otwieram

  1. <?php
  2. $nr_kuponu = $limit1 ++;
  3. ?>
tu $nr_kuponu to liczba

  1. <?php
  2. $nr_kuponu1 = $nr_kuponu -> fields['cena'];
  3. ?>
a tu odwolujesz sie do tej liczby jak do obiektu. oco ci chodzilo?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
WMP
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.01.2006
Skąd: Lublin

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


nei dizw sie ten kod "robiły" 3 osoby. Chcę aby $nr_kuponu dodawało do bazy i w error wsadzało

Z probleme wyżej spobie poradizłem. Teraz jest problem następny.

  1. <?php
  2. $title="Loteria";
  3. require_once("includes/head.php");
  4.  
  5. if ($player -> location != 'Enaria') 
  6. {
  7. error ('W tym mieście nie ma lotrii. Dostępna jest ona tylko w Enarii');
  8. }
  9.  
  10. /*
  11. / Kupno kuponu :)
  12. */
  13. if (isset ($_GET['view']) && $_GET['view'] == 'kupon'){
  14. $loteria_on_off = $db -> Execute("SELECT on_off FROM loteria WHERE id=1"); //Jeżlei bedzie mozna kupic bilet wartosc w komórce on_off dla id 1 będzie wyności
    ć 1
  15. if ($loteria_on_off == '0') 
  16. {
  17. error ('<span id="typing">Przepraszam, ale <b>nie można</b> teraz kupić kuponu. Właśnie trwa losowanie. Proszę przyjdˇ póˇniej.</span>');
  18. }
  19. $cena1 = $db -> Execute("SELECT cena FROM loteria WHERE id=1");
  20. $cena = $cena1 -> fields['cena'];
  21. $cena1 -> Close();
  22. $smarty -> assign('Cena', $cena);
  23. if (isset ($_GET['step']) && $_GET['step'] == 'kupon_kupno'){
  24. if ($player -> credits <= $cena) 
  25. {
  26. error ("<span id="typing">Nie masz tyle pieniędzy! Potrzebujesz ".$cena."</span>");
  27.  }
  28. $db -> Execute("UPDATE players SET credits=credits-".$cena." WHERE id=".$player -> id);
  29.  $db -> Execute("UPDATE skarbiec set credits=credits+".$cena." where id=1");
  30.  //Określenie numeru kuponu
  31.  $limit = $db -> Execute("SELECT loteria FROM players ORDER BY loteria DESC LIMIT 0,1");
  32.  $limit1 = $limit -> fields['loteria'];
  33.  $limit -> Close();
  34.  //END okreslanie numeru kuponu
  35. $db -> Execute("UPDATE players SET loteria=".++$limit1." WHERE id=".$player -> id);
  36. error ("<span id="typing">Kupiłeś już kupon. Jest to kupon nr. <b>".++$limit1."</b>. Jeśli zapomnisz jaki masz numer, idź do loterii. Niestety dziśiejszy regula
    min nie zewzwala na posiadanie więcej niż 1 kuponu. Wkrótce powinno to się zmieni
    ć.</span>"
    );
  37. }
  38. /*
  39. / Lista nagród
  40. */
  41. $pm = $db ->Execute("SELECT * FROM loteria_item");
  42. $arrid = array();
  43. $arrnazwa = array(0);
  44. $arrilosc = array();
  45. $i = 0;
  46. while (!$pm -> EOF) 
  47. {
  48. $arrid[$i] = $pm -> fields['id'];
  49. $arrnazwa[$i] = $pm -> fields['nazwa'];
  50. $arrilosc[$i] = $pm -> fields['ilosc'];
  51. $pm -> MoveNext();
  52. $i = $i + 1;
  53. }
  54. $pm -> Close();
  55. $smarty -> assign ( array("Nazwa" => $arrnazwa, "Ilosc" => $arrilosc));
  56.  
  57.  
  58. } // zamknięcie ifa view kupno
  59. if (isset ($_GET['view']) && $_GET['view'] == 'admin')
  60. {
  61. if ($player -> rank != "Admin") 
  62. {
  63. error ("Nie jestes adminem! Spadaj!");
  64. }
  65. if (isset ($_GET['step']) && $_GET['step'] == 'losowanie')
  66. {
  67. if ($loteria_on_off != 1) //zamkniecie loterii gdy otwarta
  68. {
  69. $db -> Execute("UPDATE on_off SET loteria=1 WHERE id=1");
  70. }
  71. //Losowanie nagrody pierwszego stopnia
  72. $limit = $db -> Execute("SELECT loteria FROM players ORDER BY loteria DESC LIMIT 0,1");
  73. $limit1 = $limit -> fields['loteria'];
  74. $limit -> Close();
  75. $wylosowany1 = rand (1, $limit1);
  76. /* Tabela możliwej ilość osób nagrodzonych:
  77.  
  78.  osoby  miejsce
  79. wygrana nr. 1 1 6
  80. wygrana nr. 2 3 21
  81. wygrana nr. 3 5 35
  82. wygrana nr. 4 10  70
  83. wygrana nr. 5 30  210
  84. */
  85. $db -> Execute("UPDATE loteria SET nagrodzony1=".$wylosowany1." WHERE id=1");
  86. //END losowanie nagrody pierwszego stopnia
  87. //Losowanie nagrody drógiego stopnia
  88. $wylosowany2 = rand (1, $limit1);
  89. //Cały if sprawdzający
  90. if ($wylosowany2 == $wylosowany1) //sprawdznaie cyz wylosowany2 jest równe wylosowany1
  91. {
  92.  while ($wylosowany2 == $wylosowany1)  
  93. {
  94.  srand((double) microtime() * 10000000);
  95. $wylosowany2 = rand (1, $limit1);
  96. }
  97. }
  98.  
  99. //END Cały if sprawdzający
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108. //END losowanie nagrody drógiego stopnia
  109. }//zamkniecie ifa losowanie
  110. }//zamknecie ifa admin
  111. $smarty -> assign(array("Step" => $_GET['step'], "View" => $_GET['view']));
  112. $smarty -> display ('loteria.tpl');
  113. require_once("includes/foot.php");
  114. ?>


Dałem wyżej kod całego pliku. Probelm zacyzna się od linijki 71 do 100. Otóż ten kod ma weryfikować czy wartosci w danych zmiennych nie równaja się sobie. Jak widac (od 91 do 98 linijki) wsadizłem if który sprawdza czy zmienne równaja się sobie. Jeśli tak to pętla losuje tylke razy aby zmeinne nie równały się sobie. I zobaczcie jaki cód, chodzi. Problem zaczyna się w gdy dojdzie 3 zmienna($wylosowany22 nie ma tej zmeinnej bo dopiero chce ja stworzyć), która ma się nie równać pozostałym. Potem dochodiz następna o nazwie $wylosowany23. Potem dochodiz $wylosowany3, $wylosowny32 ... $wylosowny34, $wylosowany35. I zmeinne z wylosowaną nagrodą nr 4 czyli $wylosowny4, $wylosowny42...$wylosowny49 . Potem nadszedł czas na nagrodę nr 5 czyli $wylosowny5...$wylosowny529 . I te wsyztkie zmienn emają się sobie nie równać!!! Więc jak to zapisac? Aby nei robic pętli w pętli ? Mam nadzieje ze załapaliście zasade.

To ma być taka loteria a w loterii jets tak ze jedna osoba nie moze wygrac 2 nagród, wiec id gracza(osoby) nie moze sie powtarzać.

Ten post edytował WMP 9.06.2006, 14:41:08
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 Aktualny czas: 21.08.2025 - 04:05