Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]odejmowanie punktów userowi
Forum PHP.pl > Forum > Przedszkole
slawekkace
  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?
untorched
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. }
slawekkace
na jedno wyszło, moje rozwiązanie lepsze, ale to moja opinia
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.