Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]odejmowanie punktów userowi
slawekkace
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.02.2012

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


  1. if(!empty($_GET['stronab']) && isset($_GET['dodajb']) && !empty($_POST['pointsb']))
  2. {
  3. $_GET['stronab'] = (int)$_GET['stronab'];
  4. $_POST['pointsb'] = (int)$_POST['pointsb'];
  5.  
  6. if($_POST['pointsb'] < 1) $error[1] = "nieprawidłowa wartość punktów";
  7. else {
  8. if($_POST['pointsb'] >= (10*($User['points']))) $error[1] = "nie masz tyle punktów";
  9. else {
  10. mysql_query("update surf_ptc set punkty = punkty + ".$_POST['pointsb']." where idbaner = ".$_GET['stronab']." and user = ".$User['user']." limit 1");
  11.  
  12. if(mysql_affected_rows() == 0) $error[1] = "nie ma takiej strony";
  13. else {
  14. mysql_query("update surf_users set points = points - (10*(".$_POST['pointsb'].")) where user = ".$User['user']." limit 1");
  15. $error[2] = "dodano punkty";echo"<script type='text/javascript'> document.location.href = 'konto.php';</script> ";
  16. }
  17. }
  18. }
  19. }


kto znajdzie błąd?
powinno wyświetlić "nie masz tyle punktów" , obecnie punkty odejmuje userowi poniżej zera.

Kod
if($_POST['pointsb'] >= (10*($User['points'])))

z tym cos musi być nie tak, tylko co?

Znalazłem rozwiązanie, ale według mnie to nielogiczne troche,

  1. if(!empty($_GET['stronab']) && isset($_GET['dodajb']) && !empty($_POST['pointsb']))
  2. {
  3. $_GET['stronab'] = (int)$_GET['stronab'];
  4. $_POST['pointsb'] = (int)$_POST['pointsb'];
  5.  
  6. if($_POST['pointsb'] < 1) {$error[1] = "nieprawidłowa wartość punktów";}
  7. else {$iles = $_POST['pointsb'] * 10;
  8. if($iles > $User['points']) {$error[1] = "nie masz tyle punktów";}
  9. else {
  10. mysql_query("update surf_ptc set punkty = punkty + ".$_POST['pointsb']." where idbaner = ".$_GET['stronab']." and user = ".$User['user']." limit 1");
  11.  
  12. if(mysql_affected_rows() == 0) $error[1] = "nie ma takiej strony";
  13. else {
  14. mysql_query("update surf_users set points = points - (10*(".$_POST['pointsb'].")) where user = ".$User['user']." limit 1");
  15. $error[2] = "dodano punkty";echo"<script type='text/javascript'> document.location.href = 'konto.php';</script> ";
  16. }
  17. }
  18. }
  19. }


Czy w warunku bezpośrednio nie mozna zastosować mnożenia wartości, musiałem najpierw przypisać nową zmienną $iles żeby zadziałało,
czy to taki defekt języka php questionmark.gif?


Ten post edytował slawekkace 24.02.2012, 18:32:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
untorched
post
Post #2





Grupa: Zarejestrowani
Postów: 318
Pomógł: 76
Dołączył: 27.12.2011
Skąd: Dąbrowa Górnicza

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


Prosty przykład. Możesz sobie pomnożyć.
  1. <?php
  2. $l1 = 5;
  3. $l2 = 3;
  4.  
  5. if($l1 > ($l2*2) ) // if( 5 > 6 )
  6. {
  7. echo 'l1 jest większe'; // $l1 = 5; $l2 = 3;
  8. }
  9. else
  10. {
  11. echo 'l1 jest mniejsze'; // $l1 = 5; $l2 = 3;
  12. }


Ten post edytował untorched 24.02.2012, 22:43:04
Go to the top of the page
+Quote Post
slawekkace
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 3.02.2012

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


na jedno wyszło, moje rozwiązanie lepsze, ale to moja opinia
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 - 02:45