Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Update Sql kilku wartosci
Forum PHP.pl > Forum > Przedszkole
kaźmirz
Jak napisać zapytanie tak, aby w jednym zapytaniu zmienic kilka wartosci, dla których są różne warunki.
Może lepiej wkleje to co sam nabazgrałem, bedzie wiadomo o co mi chodzi
  1. UPDATE `tabela` SET `punkty` = `punkty` + 1 WHERE `druzyna`='ajax' AND SET `punkty` = `punkty` + 1 WHERE `druzyna`='psv'


Powiedzmy, że robie tabele ligi holenderskiej i w np. meczu ajax vs psv padł remis i chce te punkty dodac do tabeli, próbowałem tak jak powyżej, ale z góry wiedziałem że to nie wypali.
Da się to jakoś zrobić jednym zapytaniem, czy musze zrobic dwa?

Pewnie to jest proste, ale mialem kilkuletni rozbrat z php i sql'em :/
casperii
Jedyne co mi teraz przychodzi do głowy to:

  1. if($druzyna=='ajax'){
  2. $jaka_druzyna = '`druzyna` = 'ajax' ';
  3. }
  4. elseif($druzyna=='psv'){
  5. $jaka_druzyna = '`druzyna` = 'psv' ';
  6. }
  7. elseif($druzyna=='ajax' && $druzyna=='psv'){
  8. $jaka_druzyna = '`druzyna` = 'psv' AND `druzyna` = 'ajax' ';
  9. }
  10.  
  11. UPDATE `tabela` SET `punkty` = `punkty` + 1 WHERE $jaka_druzyna;


Ale pewnie ktoś znajdzie lepszy sposób :-)
kaźmirz
To bym musiał umieścic w pętli i nadal nie było by to jedno zapytanie i powiedzmy przy większej ilości zmian danych obciążało by to baze.
To był przykład 2 drużyn, a jeśli dodamy kilka lig, i kilkadziesiat druzyn i wynikow + bramki itp :/

Chce to ograniczyc do minimum, chociaz zeby jeden mecz = jedno zapytanie, a Twój przykład to 1 mecz = 2 zapytania, a jak jeszcze bede chcial aktualizowac ilosc bramek, to juz wyjda 4 zapytania na jeden mecz.

Ideałem jak dla mnie byłoby coś takiego:
  1. UPDATE `tabela` SET `punkty`=`punkty`+3 , `bramki_strzelone`=`bramki_strzelone`+2 , `bramki_stracone`=`bramki_stracone`+1 WHERE `druzyna`='ajax' AND SET `punkty`=`punkty`+0 , `bramki_strzelone`=`bramki_strzelone`+1 , `bramki_stracone`=`bramki_stracone`+2 WHERE `druzyna`='psv'
Star
Żeby zaktualizować kilka drużyn musisz stworzyć tyle zapytań ile jest tych drużyn. Możesz te kluby wladowac w tablice i potem przy pomocy foreach przeleciec przez nia
  1. foreach($kluby as $klub)
  2. {
  3. mysqli_query("UPDATE tabela SET punkty=punkty+1 WHERE druzyna='$klub' ");
  4. }
markonix
Aktualizowanie punktów to raczej po każdym meczu tylko więc optymalizacją bym się jakoś tak mocno nie przejmował.
Przy aktualizowaniu punktów możesz od razu zaktualizować od razu wszystkie inne parametry.
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.