Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dane z bazy, obiekty
Forum PHP.pl > Forum > PHP
WMP
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
nospor
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?
WMP
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ć.
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.