Autor | Zpráva | ||
---|---|---|---|
unlucky Profil |
#1 · Zasláno: 29. 5. 2018, 08:45:46
Ahoj,
skript přídává výsledky her do 3 tabulek, MATCHES, GROUPS, RESULTS. matches obsahuje id 2 týmů a jejich výsledky groups obsahuje informace o týmech a jejich výsledky results obsahuje podrobné informace her mezi členy. Každé utkání má 7 her (5 dvouher, 2 čtyřher) Tabulky jsou už takto navržené a ke skriptu má přístup jenom admin, takže není zapotřebí nějak ošetřit vstupní data. Jak tento skript zrychlit či vylepšit? if (!empty($_POST['add'])){ //update match results mysql_query("update matches set score1=$_POST[scorea], score2=$_POST[scoreb], done=1 where id=$_POST[matchidz]"); //Update groups set wins-lose mysql_query("update groups set win=win+$_POST[scorea], lose=lose+$_POST[scoreb], points=points+$_POST[pointsa] where id=$_POST[nhaidz]"); //doi khach mysql_query("update groups set win=win+$_POST[scoreb], lose=lose+$_POST[scorea], points=points+$_POST[pointsb] where id=$_POST[khachidz]"); //Update member wins/lose member table 16 query mysql_query("update members set solo_win=solo_win+$_POST[points11], solo_lose=solo_lose+$_POST[points12] where id=$_POST[p11]"); //tr1 p1 mysql_query("update members set solo_win=solo_win+$_POST[points12], solo_lose=solo_lose+$_POST[points11] where id=$_POST[p12]"); //tr1 p2 mysql_query("update members set solo_win=solo_win+$_POST[points21], solo_lose=solo_lose+$_POST[points22] where id=$_POST[p21]"); //tr2 p1 mysql_query("update members set solo_win=solo_win+$_POST[points22], solo_lose=solo_lose+$_POST[points21] where id=$_POST[p22]"); //tr2 p2 mysql_query("update members set duo_win=duo_win+$_POST[points31], duo_lose=duo_lose+$_POST[points32] where id=$_POST[p31]"); //tr3 p1 mysql_query("update members set duo_win=duo_win+$_POST[points31], duo_lose=duo_lose+$_POST[points32] where id=$_POST[p32]"); //tr3 p2 mysql_query("update members set duo_win=duo_win+$_POST[points32], duo_lose=duo_lose+$_POST[points31] where id=$_POST[p33]"); //tr3 p1 mysql_query("update members set duo_win=duo_win+$_POST[points32], duo_lose=duo_lose+$_POST[points31] where id=$_POST[p34]"); //tr3 p1 mysql_query("update members set solo_win=solo_win+$_POST[points41], solo_lose=solo_lose+$_POST[points42] where id=$_POST[p41]"); //tr4 p1 mysql_query("update members set solo_win=solo_win+$_POST[points42], solo_lose=solo_lose+$_POST[points41] where id=$_POST[p42]"); //tr4 p2 mysql_query("update members set solo_win=solo_win+$_POST[points51], solo_lose=solo_lose+$_POST[points52] where id=$_POST[p51]"); //tr5 p1 mysql_query("update members set solo_win=solo_win+$_POST[points52], solo_lose=solo_lose+$_POST[points51] where id=$_POST[p52]"); //tr5 p2 mysql_query("update members set duo_win=duo_win+$_POST[points61], duo_lose=duo_lose+$_POST[points62] where id=$_POST[p61]"); //tr6 p1 mysql_query("update members set duo_win=duo_win+$_POST[points61], duo_lose=duo_lose+$_POST[points62] where id=$_POST[p62]"); //tr6 p2 mysql_query("update members set duo_win=duo_win+$_POST[points62], duo_lose=duo_lose+$_POST[points61] where id=$_POST[p63]"); //tr6 p3 mysql_query("update members set duo_win=duo_win+$_POST[points62], duo_lose=duo_lose+$_POST[points61] where id=$_POST[p64]"); //tr6 p4 mysql_query("update members set solo_win=solo_win+$_POST[points71], solo_lose=solo_lose+$_POST[points72] where id=$_POST[p71]"); //tr7 p1 mysql_query("update members set solo_win=solo_win+$_POST[points72], solo_lose=solo_lose+$_POST[points71] where id=$_POST[p72]"); //tr7 p2 //add 7 results result table 7 query mysql_query("insert into results (member1, member2, member3, member4, points1, points2, match_id) values ('$_POST[p11]','0','$_POST[p12]','0','$_POST[points11]','$_POST[points12]','$_POST[matchidz]'). ('$_POST[p21]','0','$_POST[p22]','0','$_POST[points21]','$_POST[points22]','$_POST[matchidz]'), ('$_POST[p31]','$_POST[p32]','$_POST[p33]','$_POST[p34]','$_POST[points31]','$_POST[points32]','$_POST[matchidz]'), ('$_POST[p41]','0','$_POST[p42]','0','$_POST[points41]','$_POST[points42]','$_POST[matchidz]'), ('$_POST[p51]','0','$_POST[p52]','0','$_POST[points51]','$_POST[points52]','$_POST[matchidz]'), ('$_POST[p61]','$_POST[p62]','$_POST[p63]','$_POST[p64]','$_POST[points61]','$_POST[points62]','$_POST[matchidz]'), ('$_POST[p71]','0','$_POST[p12]','0','$_POST[points71]','$_POST[points72]','$_POST[matchidz]') "); } |
||
Kcko Profil |
unlucky:
Proč je potřeba to zrychlovat? To jsou jednorázové akce, které se nedějí při načtení stránky nebo zápasu, ale když se nějaký zápas ukládá ne? Kdysi sem načrtl řešení rjwebdesign.cz/blog/PHP/20080113-Generovani-Nejen-Fotbalove-Tabulky (to tvoje je 1), můžeš se vydat i další cestou 2 nebo 3) |
||
unlucky Profil |
Kcko:
protože se už se mi párkrát stalo, že se update nevydařil. Sice se neobjevil žádný error, ale data v databázi zůstala stejná. Přemýšlím, zda není error kvůli: 1) default value NULL 2) příliš mnoho update- query 3) jsem zapomněl data vložit ps: blog jsem si přečetl, všechny jednotlivé zápasy jsou uložené do RESULTS, takže v případě potřeby bych si je mohl znovu vytáhnout a počítat |
||
Kcko Profil |
#4 · Zasláno: 29. 5. 2018, 11:24:33
unlucky:
Ano, ten první způsob jsem používal když jsem "začínal" protože je nejsnažší na vytvoření a pochopení. Nejlepší dle mého je 2ka. Můžeš za běhu generovat tabulku a je to rychlé, nebo si kdykoliv snadno tabulku přepočítat a do DB uložit už vypočítané řádky (body, branky atd). |
||
Keeehi Profil |
#5 · Zasláno: 29. 5. 2018, 12:44:39
unlucky:
„Sice se neobjevil žádný error,“ Tak to bude hlavně tím, že si nikde žádnou chybu nevypisuješ. Pokud to nefunguje jen někdy, tak musíš přijít na to, v jakých případech to nefunguje. Zjevná chyba tu vidět není, takže budeš muset počkat, až se to znovu stane. |
||
Časová prodleva: 6 let
|
0