Fotbalová statistika – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Fotbalová statistika – MySQL – Fórum – Programujte.comFotbalová statistika – MySQL – Fórum – Programujte.com

 

Paja2
~ Moderátor
+2
Věrný člen
22. 6. 2008   #1
-
0
-


Mohl by mi někdo poradit jak bych nejlépe mohl vytvořit strukturu tabulek, když
bych chtěl aby se mi zobrazovalo počet výher, proher, a remíz u jednotlivých
týmů, počet inkasovaných a vstřelených branek a také bych chtěl aby se mi
zobrazovali střelci u jednotlivých týmu, kteří dali gola. napadá někoho jak by
se to dalo vytvořit

Nahlásit jako SPAM
IP: 88.146.213.–
22. 6. 2008   #2
-
0
-

Nejdriv se zamysli a zkus neco navrhnout sam, my ti to pomuzeme opravit/vylepsit. Lidi udelejte-to-pekne-prosim-za-me tady nikdo rad nema.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
23. 6. 2008   #3
-
0
-

To CommanderZ :
přemýšlel jsem nad tímto

tabulka utkání
id
domaci_tym
hostujici_tym
vysledek_domaciho_tymu
vysledek_hostujiciho_tymu
body_domaci
body_hoste

a pak tabulka
utkani_detail
id_utkani
domaci_tym
hostujici_tym
domaci_strelci
hostujici_strelci

Nahlásit jako SPAM
IP: 217.112.165.–
duchan0
Newbie
23. 6. 2008   #4
-
0
-

mas taku dost vseobecnu otazku. tie tvoje poziadavky sa daju splnit aj ked to bude navrhnute zle (struktura). Na tvojom mieste by som si dobre rozmyslel na co vsetko budes databazu pouzivat, ake data ukaladat, typ db atd.... usetris si pracu s tym ze to nebudes musiet prerabat koli tomu ze si nieco zabudol.

Nahlásit jako SPAM
IP: 91.127.65.–
Paja2
~ Moderátor
+2
Věrný člen
23. 6. 2008   #5
-
0
-

To duchan :
co říkáš na ten můj návrh uvedený výše...? udělal bys to nějak jinak ?

Nahlásit jako SPAM
IP: 217.112.165.–
23. 6. 2008   #6
-
0
-

1) Udelej si tabulku tymy, ve ktere bude ID tymu, nazev tymu a pripadne nejake dalsi podrobnosti
2) Moc nechapu to utkani_detail. Udelej si treba tabulku goly se sloupci gol_id, zapas_id, strelec_id, cas a buh vi co jeste. To samozrejme budes potrebovat jeste tabulku strelcu (nebo treba misto toho tabulku hraci, to by vyslo nastejno).

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
23. 6. 2008   #7
-
0
-

To CommanderZ : právě jsem chtěl z tabulky detaily načítat střelce golů, ale jak sám vidíš tak vůbec v tom nemám jasno..ty jsi mě tak trošku navedl dík

Nahlásit jako SPAM
IP: 217.112.165.–
duchan0
Newbie
23. 6. 2008   #8
-
0
-

ja by som si urobil asi taketo tabulky:

1. tymi
- id, info o tyme .atd....
2. hraci
- id, meno, id tymu atd....
3. zapasy
- idcka tymov co hraju a dalsie veci co tam chces
4. goly
- tu co potrebujes mat...hlavne id hraca

len taky veeeeelmi strucne a moj navrh ale ja neviem co tam vlastne vsetko chces mat.

Nahlásit jako SPAM
IP: 91.127.65.–
Paja2
~ Moderátor
+2
Věrný člen
23. 6. 2008   #9
-
0
-

To duchan : možná bych ještě k tabulce goly přidal id_zapasu aby bylo zřejmé ke kterému zapasu jsou ty goly co ty na to ?

Nahlásit jako SPAM
IP: 217.112.165.–
duchan0
Newbie
23. 6. 2008   #10
-
0
-

To Paja2 : jj jasan. tam toho treba pridat este hodne. ale to id zapasu je v podstate nutnost aby to malo zmysel.

Nahlásit jako SPAM
IP: 91.127.65.–
Paja2
~ Moderátor
+2
Věrný člen
23. 6. 2008   #11
-
0
-

To duchan : a co obdržené a vstřelené branky a celkové body ? to zapsat do tabulky zápasy ?

Nahlásit jako SPAM
IP: 217.112.165.–
23. 6. 2008   #12
-
0
-

Tady jsou v zasade dve reseni - bud to pokazde znova spocitat (informace o golech mas uz v tabulce goly!) nebo si nekam ukladat integer s poctem golu - to je rychlejsi ale musis se starat o obnoveni tohoto poctu kdykoliv se tabulka goly zmeni.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
23. 6. 2008   #13
-
0
-

To CommanderZ : jj..máš pravdu jsou tam id_hračů, můžu zjistit do kterého týmu patří a pak dodle toho sečíst ale jak na goly které tým obdrží. Jedině ukladat do tabulky zapasy počty golu u domacího a hostujícího celku a pak také body které za zápas dostanou.

Nahlásit jako SPAM
IP: 217.112.165.–
23. 6. 2008   #14
-
0
-

Pocet obrzenych golu zjistit muzes, protoze vis, mezi kterymi tymy zapas probihal a taky vis, k jakemu zapasu ktery gol patri.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
23. 6. 2008   #15
-
0
-

To CommanderZ : ted zkusím navrhnout konečnou verzi té tabulky

1. tymi
- id, nazev_tymu
2. hraci
- id, meno hrace, id tymu, oceneni
3. zapasy
- idcka tymov co hraju a dalsie veci co tam chces
4. goly
- id hrace,id zapasu, pocet_golu

jsou ještě nějaké návhry ?

Nahlásit jako SPAM
IP: 217.112.165.–
23. 6. 2008   #16
-
0
-

4. goly
- id hrace,id zapasu, pocet_golu


Co pocet golu? Melo by platit 1 gol = 1 zaznam. Takze kdyz da 1 hrac v 1 zapase vice golu, tak bude proste pritomno vice zaznamu.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
23. 6. 2008   #17
-
0
-

To CommanderZ : jj..máš pravdu já jsem přemýšlel tak
že bych měl zaškrkávací checboxy u každého hráče a pak vedle toho input do kterého by se psalo počet golů, poté bych odeslal id hráče + jeho počet golů. ale máš rpavdu...v tom co říkáš.

a ještě bych se chtěl zeptat jak by se řešilo zapisování bodů..ty asi zapisovat do tabulky tymy ..že ?

ještě mi trošku není jasné když budu generovat celkovou tabulku kde bude skoré jednotlivých týmů, zda mi bude stačit tabulka goly nebo musím zapisovat skore jednotlivých zápasu do tabulky zapasy. Možná má hloupé dotazy ale s touto problematikou nemám dosud žádné zkušenosti

Nahlásit jako SPAM
IP: 217.112.165.–
23. 6. 2008   #18
-
0
-

Pocitat skore by slo rovnez pomoci informaci o golech, bylo by to uz dost komplikovane. Nejlepsi bys asi mel ukladat celkove skore bud ke kazdemu tymu (jestli bude v databazi jen jeden turnaj) nebo k jednotlivym zapasum a pak to scitat (nebo se nabizi treba reseni ukladat ID viteze - bylo by tam ID vitezneho tymu nebo 0/NULL v pripade remizy).

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
24. 6. 2008   #19
-
0
-

To CommanderZ :
ale já bych právě potřeboval mít přehled o odehraných zápasech proto se nabízí možnost ukládat skore k jednotlivým zápasům, al enevím jak spočítat body a skore pokud jednou bude tým jako domací a podruhé jako hostující

struktura tabulky zaápasy
id_zapasu
id_domaci
id_hostujici
dom_vysledek
host_vysledek
dom_body
host_body

nevíš zda by to šlo vyřešit nějak jednoduššeji

Nahlásit jako SPAM
IP: 88.146.215.–
25. 6. 2008   #20
-
0
-

Ono si musis uvedomit, ze v MySQL jsou dve jednoduseji:

1) Z pohledu tabulky - tabulku maji mene policek a vice dat se dopocitava na zaklade ruznych zavislosti a tak
2) Z pohledu dotazu - tabulky maji vice policek, ale dotazy jsou vyrazne jednodussi. Toto reseni byva vyrazne rychlejsi co se tyce casu zpracovani v databazi, ale zase musis neustale hlidat konzistanci dat a dukladne vsechna policka aktualizovat pri kazde zmene.

Mezi temito dvema pristupy si musis vybrat sam - nejlepsi je ale nejit si svoji zlatou stredni cestu a cacheovat to, co by bylo z hlediska vypocetniho casu neunosne CPU nakladne nebo neunosne slozite pro tebe.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
25. 6. 2008   #21
-
0
-

To CommanderZ :
nakonec jsem to vyřešil že mám dvě tabulky..



include "connect.php";

$kolo=$_POST['kolo'];
$sezona=$_POST['sezona'];
$domaci=$_POST['id_domt'];
$hostujici=$_POST['id_hostt'];
$dom_vysledek=$_POST['dom_vysledek'];
$host_vysledek=$_POST['host_vysledek'];

if($dom_vysledek <$host_vysledek )
{
$body_h=3;
$body_d=0;

}
elseif($dom_vysledek >$host_vysledek )
{
$body_h=0;
$body_d=3;

}
else{
$body_h=1;
$body_d=1;

}
mysql_query("insert into system_zapasy values('','$kolo','$domaci','$hostujici','$dom_vysledek','$host_vysledek','$sezona')") or die (mysql_error());
//domácí
mysql_query("update system_tymy set zapasy=zapasy+1, body=body+$body_d,vg=vg+$dom_vysledek,og=og+$host_vysledek where id='$domaci'") or die (mysql_error());
//hoste
mysql_query("update system_tymy set zapasy=zapasy+1, body=body+$body_h,vg=vg+$host_vysledek,og=og+$dom_vysledek where id='$hostujici'")or die (mysql_error());


ale lámu si hlavu s tím jak zapisovat výhry prohry a remízy

Nahlásit jako SPAM
IP: 217.112.165.–
25. 6. 2008   #22
-
0
-

Zase jsme u toho - vyhra/prohra/remiza jse svym zpusobem zapsana ve skore zapasu. Pri kazdem cteni by jsi ale musel pouzit nekolik IF podminek nebo jeden CASE (tak jako tak byses dopatlal k SQL dotazum nekolik radkum dlouhym).

Uz jsem ti tu ale doporucoval ukladat do te tabulky zapasy sloupec vitez_id kde bude id vitezneho tymu nebo NULL v pripade remizy.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
25. 6. 2008   #23
-
0
-

To CommanderZ :
určitě máš pravdu,ale já bohužel nejsem v php a mysql tak moc pokročilý a tak vůbec netuším jak bych s tím mohl dále pracovat..jediné co mě napadá tak jsou výhry, pomocí count(id_viteze)

Nahlásit jako SPAM
IP: 217.112.165.–
25. 6. 2008   #24
-
0
-

myslis celkovy pocet bodu ebop vyher?

Celkovy pocet bodu zapasu pro tym 123 by byl

SELECT COUNT(*) from zapasy where vitez_id=123


A celkovy pocet bude uz je trochu slozitejsi

SELECT SUM(

IF(vitez_id=123,3,IF(vitez_id IS NULL,1,0))
) FROM zapasy WHERE domaci_tym_id=123 OR hostujici_tym_id=123

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
25. 6. 2008   #25
-
0
-

To CommanderZ : díky takže mám celkový počet bodů, celkem výher ale jak ještě na prohry a remízy. I to jde nějak ?

Nahlásit jako SPAM
IP: 217.112.165.–
25. 6. 2008   #26
-
0
-

K tomu na vyhry si radsi dopln jeste tohle

AND (domaci_tym_id=123 OR hostujici_tym_id=123)


prohry - vsechny zapasy kde tym 123 hral, ale nevyhral a vitez neni null

SELECT COUNT(*) from zapasy where vitez_id!=123 and vitez_id IS NOT NULL and (domaci_tym_id=123 OR hostujici_tym_id=123)


remizy - zapasy kde tym hral a vitez je null

SELECT COUNT(*) from zapasy where vitez_id IS NULL and (domaci_tym_id=123 OR hostujici_tym_id=123)


A priste nez se zeptas, tak zkus chvili premyslet, tohle byla jen jdnoducha uprava toho na vyhry!

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
25. 6. 2008   #27
-
0
-

To CommanderZ : díky

Nahlásit jako SPAM
IP: 88.146.215.–
Paja2
~ Moderátor
+2
Věrný člen
26. 6. 2008   #28
-
0
-

To Paja2 : ještě jeden dotázek: nevím jak vytáhnout názvy týmů...výtáhnout třeba jen název domácích týmů není problém ale nevím jak zároven vytáhnout domácí a hostující



<?
$sql=mysql_query("select * from system_zapasy t1 join
system tymy t2 on t1.id_domt=t2.id ") or die (mysql_error());

while($row=mysql_fetch_assoc($sql)){
print_r($row);
$id_doma=$row["id_domt"];
$domaci_tym=$row["tym"];
echo "<tr><td>".$domaci_tym."</td><td>".$row["dom_vysledek"]."</td><td>".$row["host_vysledek"]."</td><td>".$hostujíci_tym."</td></tr>";

}


?>

Nahlásit jako SPAM
IP: 217.112.165.–
26. 6. 2008   #29
-
0
-

Musis pouzit aliasy



SELECT domaci.jmeno, hoste.jmeno FROM zapasy JOIN tymy AS domaci JOIN tymy AS hoste WHERE zapasy.domaci_tym_id=domaci.id and zapasy.hostujici_tym_id=hoste.id

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
duchan0
Newbie
26. 6. 2008   #30
-
0
-

Paja2 ...podla mna by si si mal pozriet nieco o databazach a nieco o SQL. Nie ze by mi to vadilo ze sa to tu ubera tak, ze CommanderZ to robi v podstate vsetko za teda, ale ide o to sa nieco nove naucit. Takto len vyriesis problem ktory mas a dalsi budes musiet zase hladat riesenie, pytat sa alebo sa to nakoniec aj tak naucis.

tu ma napadol jeden easy tutor na sql
http://www.w3schools.com/sql/default.asp

neber to tak ze ta krituzujem, ale je lepsie sa trochu do toho dostat....usetris si vela casu a prerabania.

Nahlásit jako SPAM
IP: 85.135.237.–
26. 6. 2008   #31
-
0
-

On je problem v tom, ze se MySQL uci na pomerne komplexnim priklade s nekolika zasadnimi zadrhely. Na zacatek je proste lepsi delat neco jednodussiho. Myslim ze tak, aby mohl sam vymyslet to co jsem mu napsal, se MySQL za tyden opravdu nenauci i kdyby sebevic chtel.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
duchan0
Newbie
26. 6. 2008   #32
-
0
-

no jo. ja som mal na mysli cisto dotazovaci jazyk...v tomto pripade SQL...nemyslel som dake zakutia konkretne MySQL. Myslim ze vseobecne zaklady o databazach a SQL jazyj by mu pomohli.

ale na druhej strane mas pravdu ze za par dni to asi tazko zvladne.

Nahlásit jako SPAM
IP: 85.135.237.–
Paja2
~ Moderátor
+2
Věrný člen
27. 6. 2008   #33
-
0
-

To duchan :
Mohl bys mi poradit jak, upravit kod tak aby se mi týmy vypsali jen jednou, ke každému týmu načítám hráče a tým se vždy opakuje podle počtu hráčů, zkoušel jsem distinct i group ale to mi nějak nefunguje.



$sql2=mysql_query("select hrd.id_hrace,hrd.jmeno as domacihraci,id_utkani,id_domt, d.tym as tym1,h.tym as tym2, dom_vysledek, host_vysledek
FROM system_zapasy z
LEFT JOIN system_tymy d ON z.id_domt = d.id
LEFT JOIN system_tymy h ON z.id_hostt= h.id
LEFT JOIN system_hraci hrd ON z.id_domt=hrd.id_tymu
LEFT JOIN system_hraci hrh ON z.id_hosst=hrd.id_tymu where z.id_utkani='$utkani' group by id_utkani")
or die (mysql_error());

Nahlásit jako SPAM
IP: 217.112.165.–
Paja2
~ Moderátor
+2
Věrný člen
27. 6. 2008   #34
-
0
-

To duchan : už jsem udělal velký krok v před bohužel s generováním fotbalové tabulky nemám zkušenosti a tak to vypadá tak jak to vypadá...

Nahlásit jako SPAM
IP: 217.112.165.–
27. 6. 2008   #35
-
0
-

1) Nepouzivej tak kratke aliasy. to je pak jako to cist v morseovce.

Jak muzes vypisovat kazdy tym jen jedno kdyz chces ziskat i vsechny hrace? Na groupovanych sloupich/tabulkach muzes provadet jen agregatni funkce, rozhodne se je nemuzes snazit ziskat.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
27. 6. 2008   #36
-
0
-

To CommanderZ : už jsem na to přišel

Nahlásit jako SPAM
IP: 88.146.215.–
duchan0
Newbie
30. 6. 2008   #37
-
0
-

To Paja2 : sry ze som nereagoval ale mal som dake povinnosti

Nahlásit jako SPAM
IP: 85.135.228.–
Paja2
~ Moderátor
+2
Věrný člen
1. 7. 2008   #38
-
0
-

To duchan : okey..tak nějak ještě přemýšlím nad tabulkou goly...zda tam bude stačit jen to id_utkani a id_hrace a jak to případně propojit pomocí join

Nahlásit jako SPAM
IP: 217.112.165.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

Statistika — založil Pepa

Statistika — založil liborb

Statistika návštěvnosti — založil filip

Štatistika - strany — založil Lovec

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý