Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapytanie IF
Forum PHP.pl > Forum > Przedszkole
kurczak610
Witam ponownie tongue.gif exclamation.gif
Mam takie zapytanie IF:
  1. <?php
  2. if($rangamin == $rangamax OR $rangamin => $rangamax) {
  3. mysql_query("UPDATE users1 SET ranga=ranga+1 WHERE id=$_SESSION[userid]") or die(mysql_error());
  4. }
  5. ?>


I wywala bład:
Parse error: syntax error, unexpected T_DOUBLE_ARROW

Ale jak wywale z kodu:
  1. <?php
  2. OR $rangamin => $rangamax
  3. ?>
Jest ok

Dlaczego?
bliitz
zamiast OR spróbuj ||
kurczak610
To samo ;/
mike
Podstawy podstaw. Operatory porównań

Następnym razem pisz na Przedszkolu.
kurczak610
A dlaczego jak dodam do tego:
  1. <?php
  2. mysql_query("UPDATE users1 SET rangamin=rangamin-$rangamin WHERE id=$_SESSION[userid]") or die(mysql_error());
  3. ?>

To mam bład:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=1' at line 1
destroyerr
Zastanów się nad sensownością Twojego warunku. Najpierw sprawdzasz czy jest równe, a potem chcesz sprawdzać czy jest równe lub większe. Wystarczy tylko jeden warunek.
Twój zapis drugiego warunku powinien wyglądać tak:
  1. <?php
  2. $rangamin >= $rangamax
  3. ?>
kurczak610
No bo mi chodzi o system rang.
Mam 3 pola w tabeli:
ranga - id rangi
rangamin - gdy bedzie rowne rangamax wtedy do rangi dodaje 1 i od tego odejmuje tyle ile jest w rangamax
rangamax

Chyba ze macie jakis inny system rang tongue.gifP
maly_swd
  1. <?php
  2. mysql_query("UPDATE users1 SET rangamin=rangamin-{$rangamin} WHERE id={$_SESSION[userid]}") or die(mysql_error());
  3. ?>
gcdreak
Używaj mysqli!
kurczak610
Mam coś takiego:
  1. <?php
  2. if($pokazranga['rangamin'] >= $pokazranga['rangamax']) {
  3. mysql_query("UPDATE users1 SET ranga=ranga+1 WHERE id=$_SESSION[userid]") or die(mysql_error());
  4.                              
  5.  
  6.               if($pokazranga['ranga'] == 1)
  7.               mysql_query("UPDATE users1 SET rangamax=40 WHERE id=$_SESSION[userid]") or die(mysql_error());
  8.               mysql_query("UPDATE users1 SET rangamin=rangamin-40 WHERE id=$_SESSION[userid]") or die(mysql_error());
  9.              
  10.               if($pokazranga['ranga'] == 2)
  11.               mysql_query("UPDATE users1 SET rangamax=100 WHERE id=$_SESSION[userid]") or die(mysql_error());
  12.               mysql_query("UPDATE users1 SET rangamin=rangamin-100 WHERE id=$_SESSION[userid]") or die(mysql_error());
  13.  
  14.               if($pokazranga['ranga'] == 3)
  15.               mysql_query("UPDATE users1 SET rangamax=250 WHERE id=$_SESSION[userid]") or die(mysql_error());
  16.               mysql_query("UPDATE users1 SET rangamin=rangamin-250 WHERE id=$_SESSION[userid]") or die(mysql_error());
  17.              
  18.               if($pokazranga['ranga'] == 4)
  19.               mysql_query("UPDATE users1 SET rangamax=550 WHERE id=$_SESSION[userid]") or die(mysql_error());
  20.               mysql_query("UPDATE users1 SET rangamin=rangamin-550 WHERE id=$_SESSION[userid]") or die(mysql_error());
  21.  
  22.               if($pokazranga['ranga'] == 5)
  23.               mysql_query("UPDATE users1 SET rangamax=1300 WHERE id=$_SESSION[userid]") or die(mysql_error());
  24.               mysql_query("UPDATE users1 SET rangamin=rangamin-1300 WHERE id=$_SESSION[userid]") or die(mysql_error());
  25.              
  26.               if($pokazranga['ranga'] == 6)
  27.               mysql_query("UPDATE users1 SET rangamax=3000 WHERE id=$_SESSION[userid]") or die(mysql_error());
  28.               mysql_query("UPDATE users1 SET rangamin=rangamin-3000 WHERE id=$_SESSION[userid]") or die(mysql_error());
  29.  
  30.               if($pokazranga['ranga'] == 7)
  31.               mysql_query("UPDATE users1 SET rangamax=7500 WHERE id=$_SESSION[userid]") or die(mysql_error());
  32.               mysql_query("UPDATE users1 SET rangamin=rangamin-7500 WHERE id=$_SESSION[userid]") or die(mysql_error());              
  33.  
  34.               if($pokazranga['ranga'] == 8)
  35.               mysql_query("UPDATE users1 SET rangamax=18000 WHERE id=$_SESSION[userid]") or die(mysql_error());
  36.  
  37. }
  38. ?>


Ale odejmuje mi za duzo w rangamin, co to zrobić? tongue.gifP
gcdreak
Cytat(kurczak610 @ 16.06.2009, 17:29:04 ) *
Ale odejmuje mi za duzo w rangamin, co to zrobić? tongue.gif P


Co to znaczy 'za dużo'? O ile za dużo?
kurczak610
Mam np. 1 range:
  1. <?php
  2. if($pokazranga['ranga'] == 1)
  3.               mysql_query("UPDATE users1 SET rangamax=40 WHERE id=$_SESSION[userid]") or die(mysql_error());
  4.               mysql_query("UPDATE users1 SET rangamin=rangamin-40 WHERE id=$_SESSION[userid]") or die(mysql_error());
  5. ?>


Zamiast odejmować mi 40 odejmuje wszystko ze skryptu tongue.gif
kurczak610
Daj jakis przykład mysqli bo nigdy ich nie uzywałem tongue.gifP
erix
Porównaj sobie zapis tego zapytania z Twoim...
kurczak610
Mam dawać np. gdy odejmuje, zmienna $rangamax w {}questionmark.gif
hostingekspert
tak,

popraw również wszędzie

  1. <?php
  2. $_SESSION[userid]
  3. ?>


na

  1. <?php
  2. {$_SESSION['userid']}
  3. ?>


a zamiast używać 8krotnie instrukcji warunkowej if, użyj switch
Ociu
Tymczasem ja przeniosę do przedszkola.
kurczak610
Więc mam coś takiego:
  1. <?php
  2. if($pokazranga['ranga'] == 1)
  3.               mysql_query("UPDATE users1 SET rangamax=40 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  4.               mysql_query("UPDATE users1 SET rangamin=rangamin-40 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  5.              
  6.               if($pokazranga['ranga'] == 2)
  7.               mysql_query("UPDATE users1 SET rangamax=100 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  8.               mysql_query("UPDATE users1 SET rangamin=rangamin-100 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  9.  
  10.               if($pokazranga['ranga'] == 3)
  11.               mysql_query("UPDATE users1 SET rangamax=250 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  12.               mysql_query("UPDATE users1 SET rangamin=rangamin-250 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  13.              
  14.               if($pokazranga['ranga'] == 4)
  15.               mysql_query("UPDATE users1 SET rangamax=550 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  16.               mysql_query("UPDATE users1 SET rangamin=rangamin-550 WHERE id=$_SESSION[userid]") or die(mysql_error());
  17.  
  18.               if($pokazranga['ranga'] == 5)
  19.               mysql_query("UPDATE users1 SET rangamax=1300 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  20.               mysql_query("UPDATE users1 SET rangamin=rangamin-1300 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  21.              
  22.               if($pokazranga['ranga'] == 6)
  23.               mysql_query("UPDATE users1 SET rangamax=3000 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  24.               mysql_query("UPDATE users1 SET rangamin=rangamin-3000 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  25.  
  26.               if($pokazranga['ranga'] == 7)
  27.               mysql_query("UPDATE users1 SET rangamax=7500 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  28.               mysql_query("UPDATE users1 SET rangamin=rangamin-7500 WHERE id={$_SESSION['userid']}") or die(mysql_error());              
  29.  
  30.               if($pokazranga['ranga']== 8)
  31.               mysql_query("UPDATE users1 SET rangamax=18000 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  32. ?>



Ale jest to samo. A nie wiem jak zrobić na swith bo ja to uzywam tylko do podstron tongue.gif
Wicepsik
  1. <?php
  2. if($pokazranga['ranga'] == 1){
  3.              mysql_query("UPDATE users1 SET rangamax=40 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  4.              mysql_query("UPDATE users1 SET rangamin=rangamin-40 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  5.                 }
  6.              if($pokazranga['ranga'] == 2){
  7.              mysql_query("UPDATE users1 SET rangamax=100 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  8.              mysql_query("UPDATE users1 SET rangamin=rangamin-100 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  9.                    }
  10.              if($pokazranga['ranga'] == 3){
  11.              mysql_query("UPDATE users1 SET rangamax=250 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  12.              mysql_query("UPDATE users1 SET rangamin=rangamin-250 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  13.                  }    
  14.            
  15.              if($pokazranga['ranga'] == 4){
  16.              mysql_query("UPDATE users1 SET rangamax=550 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  17.              mysql_query("UPDATE users1 SET rangamin=rangamin-550 WHERE id=$_SESSION[userid]") or die(mysql_error());
  18.                  }    
  19.  
  20.              if($pokazranga['ranga'] == 5){
  21.              mysql_query("UPDATE users1 SET rangamax=1300 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  22.              mysql_query("UPDATE users1 SET rangamin=rangamin-1300 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  23.                  }    
  24.            
  25.              if($pokazranga['ranga'] == 6){
  26.              mysql_query("UPDATE users1 SET rangamax=3000 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  27.              mysql_query("UPDATE users1 SET rangamin=rangamin-3000 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  28.                  }    
  29.  
  30.              if($pokazranga['ranga'] == 7){
  31.              mysql_query("UPDATE users1 SET rangamax=7500 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  32.              mysql_query("UPDATE users1 SET rangamin=rangamin-7500 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  33.                  }                
  34.  
  35.              if($pokazranga['ranga']== 8){
  36.              mysql_query("UPDATE users1 SET rangamax=18000 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  37.                  }
  38. ?>



http://php.net/manual/en/control-structures.if.php
Przykład drugi.
kurczak610
Troszke go przerobiłem bo nie zmieniał rangamax na wieksza liczbe ;P
Teraz wyglada tak:
  1. <?php
  2. if($pokazranga['rangamin'] >= $pokazranga['rangamax']) {
  3. mysql_query("UPDATE users1 SET ranga=ranga+1 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  4.                              
  5.  
  6.               if($pokazranga['ranga'] == 1){
  7.             mysql_query("UPDATE users1 SET rangamin=rangamin-40 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  8.                }
  9.             if($pokazranga['ranga'] == 2){
  10.             mysql_query("UPDATE users1 SET rangamin=rangamin-100 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  11.                   }
  12.             if($pokazranga['ranga'] == 3){
  13.             mysql_query("UPDATE users1 SET rangamin=rangamin-250 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  14.                 }    
  15.          
  16.             if($pokazranga['ranga'] == 4){
  17.             mysql_query("UPDATE users1 SET rangamin=rangamin-550 WHERE id=$_SESSION[userid]") or die(mysql_error());
  18.                 }    
  19.  
  20.             if($pokazranga['ranga'] == 5){
  21.             mysql_query("UPDATE users1 SET rangamin=rangamin-1300 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  22.                 }    
  23.          
  24.             if($pokazranga['ranga'] == 6){
  25.             mysql_query("UPDATE users1 SET rangamin=rangamin-3000 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  26.                 }    
  27.  
  28.             if($pokazranga['ranga'] == 7){
  29.             mysql_query("UPDATE users1 SET rangamin=rangamin-7500 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  30.                 }                
  31.  
  32.  
  33. }
  34.  
  35.             if($pokazranga['ranga'] == 1){
  36.             mysql_query("UPDATE users1 SET rangamax=40 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  37.                }
  38.             if($pokazranga['ranga'] == 2){
  39.             mysql_query("UPDATE users1 SET rangamax=100 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  40.                   }
  41.             if($pokazranga['ranga'] == 3){
  42.             mysql_query("UPDATE users1 SET rangamax=250 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  43.                 }    
  44.          
  45.             if($pokazranga['ranga'] == 4){
  46.             mysql_query("UPDATE users1 SET rangamax=550 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  47.                 }    
  48.  
  49.             if($pokazranga['ranga'] == 5){
  50.             mysql_query("UPDATE users1 SET rangamax=1300 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  51.                 }    
  52.          
  53.             if($pokazranga['ranga'] == 6){
  54.             mysql_query("UPDATE users1 SET rangamax=3000 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  55.                 }    
  56.  
  57.             if($pokazranga['ranga'] == 7){
  58.             mysql_query("UPDATE users1 SET rangamax=7500 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  59.                 }                
  60.  
  61.             if($pokazranga['ranga']== 8){
  62.             mysql_query("UPDATE users1 SET rangamax=18000 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  63.                 }
  64. ?>


jest troche długi, da sie go skrucić?
Pawel_W
  1. <?php
  2. if($pokazranga['rangamin'] >= $pokazranga['rangamax']) {
  3. mysql_query("UPDATE users1 SET ranga=ranga+1 WHERE id={$_SESSION['userid']}") or die(mysql_error());
  4.                            
  5.            switch($pokazranga['ranga'])
  6. {
  7. case 1:
  8. $min = 40;
  9. break;
  10. case 2:
  11. $min = 100;
  12. break;
  13. }
  14.  
  15.  
  16.            mysql_query("UPDATE users1 SET rangamin=rangamin-".$min." WHERE id={$_SESSION['userid']}") or die(mysql_error());
  17.  
  18.  
  19.  
  20. }
  21.  
  22.            switch($pokazranga['ranga'])
  23. {
  24. case 1:
  25. $max = 40;
  26. break;
  27. case 2:
  28. $max = 100;
  29. break;
  30. }
  31.  
  32.            mysql_query("UPDATE users1 SET rangamax=".$max." WHERE id={$_SESSION['userid']}") or die(mysql_error());
  33.  
  34.        ?>


musisz tylko uzupełnić switch wg wzoru
erix
Cytat
Oczywiście.

Ekhm, nie chcę nic mówić, ale o ile pamiętam, to już było kilka sugestii i coś ani jedna nie pozostała bez echa.

Do autora: naprawdę dobrze Ci radzę, poczytaj trochę kursów PHP, bo to są "fundamentalne podstawy", krążysz cały czas w koło...
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.