Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Update Sql kilku wartosci
kaźmirz
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 2
Dołączył: 6.07.2010

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


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 :/

Ten post edytował kaźmirz 27.03.2016, 23:59:18
Go to the top of the page
+Quote Post
casperii
post
Post #2





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


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 :-)

Ten post edytował casperii 28.03.2016, 00:10:22
Go to the top of the page
+Quote Post
kaźmirz
post
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 2
Dołączył: 6.07.2010

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


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'


Ten post edytował kaźmirz 28.03.2016, 00:41:52
Go to the top of the page
+Quote Post
Star
post
Post #4





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


Ż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. }


Ten post edytował Star 28.03.2016, 00:18:41
Go to the top of the page
+Quote Post
markonix
post
Post #5





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


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.


--------------------
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 - 07:31