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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 13:04