Gå til innhold

Sammenligne to tabeller med 32 lag (fotball relatert)


Anbefalte innlegg

Hoi!!

 

Jeg håper og tror at dette er enklere enn hva jeg selv har stura med de siste to dagene!!

Nå gir jeg opp, og håper noen her kan hjelpe meg!

 

Jeg har ansvaret for tipping på VM nå i sommer på jobben, og har i den forbindelse laget et system som oppdaterer poengscore for alle deltakerne som er med på tippinga. De kan dermed besøke en nettside som viser "live" poengscore under hele VM.

Scoren oppdateres hver gang jeg legger inn et nytt resultat.

Da vil systemet sjekke alle deltakernes resultater, opp mot de virkelige resultatene fra VM.

 

Jeg har fått til at systemet sammenligner alle kampresultatene, og tildeler deltakerne poeng for riktig resultat + HUB.

 

Nå skal jeg også tildele poeng for sluttplasseringen i tabellene i gruppespillet, hvor deltakerne vil få 1 poeng for hver riktig tabellplassering for alle lagene.

 

For enkeltheten skyld har jeg to tabeller (tabell A = VM lagenes tabellplasseringer, og tabell B som er tippedeltakernes tips for tabepplassering) som inneholder følgende struktur:

Kolonnene heter "lag1", "lag2", osv. med siste kolonnenavn som er "lag32".

Navn på alle land lagres i hver kolonne etter plassering i turneringen. "lag1" er vinner, "lag32" er dårligst.

 

Jeg ønsker å tildele 1 poeng for hver kolonne i tabell "A" som matcher hver av deltakernes kolonner i tabell "B".

 

Jeg har forsøkt med blant annet følgende, uten hell...

Det jeg tenkte var at jeg skulle sitte igjen med de kolonner som matcher, og telle disse og tildele 1 poeng pr. treff...

Men jeg får hodepine av hele dritten og begynner å gi opp :(

 

"SELECT deltakergrupper.lag1, deltakergrupper.lag2, deltakergrupper.lag3, deltakergrupper.lag4, deltakergrupper.lag5,
			deltakergrupper.lag6, deltakergrupper.lag7, deltakergrupper.lag8, deltakergrupper.lag9, deltakergrupper.lag10,
			deltakergrupper.lag11, deltakergrupper.lag12, deltakergrupper.lag13, deltakergrupper.lag14, deltakergrupper.lag15, deltakergrupper.lag16,
			deltakergrupper.lag17, deltakergrupper.lag18, deltakergrupper.lag19, deltakergrupper.lag20,
			deltakergrupper.lag21, deltakergrupper.lag22, deltakergrupper.lag23, deltakergrupper.lag24, deltakergrupper.lag25,
			deltakergrupper.lag26, deltakergrupper.lag27, deltakergrupper.lag28, deltakergrupper.lag29, deltakergrupper.lag30, deltakergrupper.lag31, deltakergrupper.lag32
			FROM `deltakergrupper`
			FULL JOIN grupper
			ON
			deltakergrupper.lag1=grupper.lag1 AND
			deltakergrupper.lag2=grupper.lag2 AND
			deltakergrupper.lag3=grupper.lag3 AND
			deltakergrupper.lag4=grupper.lag4 AND
			deltakergrupper.lag5=grupper.lag5 AND
			deltakergrupper.lag6=grupper.lag6 AND
			deltakergrupper.lag7=grupper.lag7 AND
			deltakergrupper.lag8=grupper.lag8 AND
			deltakergrupper.lag9=grupper.lag9 AND
			deltakergrupper.lag10=grupper.lag10 AND
			deltakergrupper.lag11=grupper.lag11 AND
			deltakergrupper.lag12=grupper.lag12 AND
			deltakergrupper.lag13=grupper.lag13 AND
			deltakergrupper.lag14=grupper.lag14 AND
			deltakergrupper.lag15=grupper.lag15 AND
			deltakergrupper.lag16=grupper.lag16 AND
			deltakergrupper.lag17=grupper.lag17 AND
			deltakergrupper.lag18=grupper.lag18 AND
			deltakergrupper.lag19=grupper.lag19 AND
			deltakergrupper.lag20=grupper.lag20 AND
			deltakergrupper.lag21=grupper.lag21 AND
			deltakergrupper.lag22=grupper.lag22 AND
			deltakergrupper.lag23=grupper.lag23 AND
			deltakergrupper.lag24=grupper.lag24 AND
			deltakergrupper.lag25=grupper.lag25 AND
			deltakergrupper.lag26=grupper.lag26 AND
			deltakergrupper.lag27=grupper.lag27 AND
			deltakergrupper.lag28=grupper.lag28 AND
			deltakergrupper.lag29=grupper.lag29 AND
			deltakergrupper.lag30=grupper.lag30 AND
			deltakergrupper.lag31=grupper.lag31 AND
			deltakergrupper.lag32=grupper.lag32
			";

Endret av Haavard82
Lenke til kommentar
Videoannonse
Annonse

Hvem har lært deg at repeterende attributter er en glimrende idé i datamodellering? Første bud er å rydde opp i datamodellen din. Kan du beskrive den nåværende for meg på logisk nivå?

 

Hei, og takk for svar! :thumbup:

Jeg tenkte vel egentlig at dette var en smart måte å gjøre det på, men jeg klarer ikke helt forklare hvorfor det var smart inne i hjernen min på det tidspunktet da jeg lagde den :S

 

Angrer nå på at jeg ikke modellerte hele systemet godt nok fra begynnelsen av.

Men jeg kan forklare det på logisk nivå..

 

Systemet består av fire tabeller.

 

1: `deltakere`:

iddeltakere (PK, INT, AI)

fornavn

etternavn

kamp1

h1

b1

k1slutt

kamp2

h2

b2

k2slutt

(...)

kamp32

h32

b32

k32slutt

poeng

 

Tabellen `deltakere`:

Hver deltaker i systemet registreres i en rad i tabellen med kampnavnet (f.eks Sor-Afrika - Mexico) i 'kampX', hjemmemål i 'hX' og bortemål i 'bX'.

 

2: `resultater`:

idresultater (PK, AI)

kamp1

h1

b1

kamp2

h2

b2

(...)

kamp32

h32

b32

 

Tabellen `resultater`:

Denne tabellen skal lagre alle kampnavn (f.eks Sor-Afrika - Mexico ), hjemmemål i 'hX', bortemål i 'bX'.

 

3: `grupper`:

idgrupper (PK, INT)

lag1

lag2

(...)

lag32

 

Tabellen `grupper`:

Denne tabellen skal sammenligne deltakernes grupper mot turneringens faktiske plasseringer.

 

Det er jo 8 grupper à 4 lag i turneringen (se nedenfor):

Tabell1:

  • Frankrike
  • Mexico
  • Uruguay
  • Sor-Afrika

 

Tabell2:

  • Argentina
  • Hellas
  • Nigeria
  • Sor-Korea

 

....men for å gjøre det enklere med poengutregning tenkte jeg at alle de 32 lagene heller legges inn i denne tabellen slik:

 

Tabell:

  • Frankrike
  • Mexico
  • Uruguay
  • Sor-Afrika
  • Argentina
  • Hellas
  • Nigeria
  • Sor-Korea

 

Dermed kan jeg enklere sammenligne deltakernes tippeforslag ved å bare sammenligne tabellen nedenfor.

 

4: `deltakergrupper`:

iddeltakergrupper (PK, INT, AI)

deltakere_iddeltakere (FK, INT)

lag1

lag2

(...)

lag32

tabellpoeng

 

Tabellen: `deltakergrupper`:

Denne tabellen er bygget opp med samme kolonnenavn som `grupper`.

Dette fordi jeg tenkte at jeg kan sammenligne innholdet i hver kolonne i denne tabellen mot alle deltakernes tippeforslag.

 

 

 

 

Hjalp dette noe?

 

Nedenfor er SQL koden:

 

CREATE TABLE grupper (
 idgrupper INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 lag1 VARCHAR(255) NOT NULL DEFAULT "Frankrike",
 lag2 VARCHAR(255) NOT NULL DEFAULT "Mexico",
 lag3 VARCHAR(255) NOT NULL DEFAULT "Uruguay",
 lag4 VARCHAR(255) NOT NULL DEFAULT "Sor-Afrika",
 lag5 VARCHAR(255) NOT NULL DEFAULT "Argentina",
 lag6 VARCHAR(255) NOT NULL DEFAULT "Hellas",
 lag7 VARCHAR(255) NOT NULL DEFAULT "Nigeria",
 lag8 VARCHAR(255) NOT NULL DEFAULT "Sor-Korea",
 lag9 VARCHAR(255) NOT NULL DEFAULT "England",
 lag10 VARCHAR(255) NOT NULL DEFAULT "USA",
 lag11 VARCHAR(255) NOT NULL DEFAULT "Algerie",
 lag12 VARCHAR(255) NOT NULL DEFAULT "Slovenia",
 lag13 VARCHAR(255) NOT NULL DEFAULT "Tyskland",
 lag14 VARCHAR(255) NOT NULL DEFAULT "Serbia",
 lag15 VARCHAR(255) NOT NULL DEFAULT "Australia",
 lag16 VARCHAR(255) NOT NULL DEFAULT "Ghana",
 lag17 VARCHAR(255) NOT NULL DEFAULT "Nederland",
 lag18 VARCHAR(255) NOT NULL DEFAULT "Kamerun",
 lag19 VARCHAR(255) NOT NULL DEFAULT "Danmark",
 lag20 VARCHAR(255) NOT NULL DEFAULT "Japan",
 lag21 VARCHAR(255) NOT NULL DEFAULT "Italia",
 lag22 VARCHAR(255) NOT NULL DEFAULT "Paraguay",
 lag23 VARCHAR(255) NOT NULL DEFAULT "Slovakia",
 lag24 VARCHAR(255) NOT NULL DEFAULT "New Zealand",
 lag25 VARCHAR(255) NOT NULL DEFAULT "Brasil",
 lag26 VARCHAR(255) NOT NULL DEFAULT "Portugal",
 lag27 VARCHAR(255) NOT NULL DEFAULT "Elfenbenskysten",
 lag28 VARCHAR(255) NOT NULL DEFAULT "Nord-Korea",
 lag29 VARCHAR(255) NOT NULL DEFAULT "Spania",
 lag30 VARCHAR(255) NOT NULL DEFAULT "Chile",
 lag31 VARCHAR(255) NOT NULL DEFAULT "Sveits",
 lag32 VARCHAR(255) NOT NULL DEFAULT "Honduras",
 PRIMARY KEY(idgrupper)
);

CREATE TABLE resultater (
 idresultater INTEGER UNSIGNED NOT NULL,
 kamp1 VARCHAR(255) NOT NULL DEFAULT "Sor Afrika - Mexico",
 h1 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b1 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp2 VARCHAR(255) NOT NULL DEFAULT "Uruguay - Frankrike",
 h2 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b2 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp3 VARCHAR(255) NOT NULL DEFAULT "Argentina - Nigeria",
 h3 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b3 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp4 VARCHAR(255) NOT NULL DEFAULT "Sor Korea - Hellas",
 h4 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b4 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp5 VARCHAR(255) NOT NULL DEFAULT "England - USA",
 h5 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b5 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp6 VARCHAR(255) NOT NULL DEFAULT "Algerie - Slovenia",
 h6 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b6 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp7 VARCHAR(255) NOT NULL DEFAULT "Tyskland - Australia",
 h7 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b7 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp8 VARCHAR(255) NOT NULL DEFAULT "Serbia - Ghana",
 h8 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b8 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp9 VARCHAR(255) NOT NULL DEFAULT "Nederland - Danmark",
 h9 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b9 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp10 VARCHAR(255) NOT NULL DEFAULT "Japan - Kamerun",
 h10 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b10 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp11 VARCHAR(255) NOT NULL DEFAULT "Italia - Paraguay",
 h11 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b11 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp12 VARCHAR(255) NOT NULL DEFAULT "New Zealand - Slovakia",
 h12 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b12 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp13 VARCHAR(255) NOT NULL DEFAULT "Elfenbenskysten - Portugal",
 h13 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b13 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp14 VARCHAR(255) NOT NULL DEFAULT "Brasil - Nord Korea",
 h14 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b14 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp15 VARCHAR(255) NOT NULL DEFAULT "Honduras - Chile",
 h15 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b15 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp16 VARCHAR(255) NOT NULL DEFAULT "Spania - Sveits",
 h16 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b16 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp17 VARCHAR(255) NOT NULL DEFAULT "Sor Afrika - Uruguay",
 h17 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b17 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp18 VARCHAR(255) NOT NULL DEFAULT "Frankrike - Mexico",
 h18 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b18 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp19 VARCHAR(255) NOT NULL DEFAULT "Hellas - Nigeria",
 h19 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b19 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp20 VARCHAR(255) NOT NULL DEFAULT "Argentina - Sor Korea",
 h20 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b20 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp21 VARCHAR(255) NOT NULL DEFAULT "Tyskland - Serbia",
 h21 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b21 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp22 VARCHAR(255) NOT NULL DEFAULT "Slovenia - USA",
 h22 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b22 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp23 VARCHAR(255) NOT NULL DEFAULT "England - Algerie",
 h23 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b23 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp24 VARCHAR(255) NOT NULL DEFAULT "Ghana - Australia",
 h24 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b24 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp25 VARCHAR(255) NOT NULL DEFAULT "Nederland - Japan",
 h25 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b25 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp26 VARCHAR(255) NOT NULL DEFAULT "Kamerun - Danmark",
 h26 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b26 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp27 VARCHAR(255) NOT NULL DEFAULT "Slovakia - Paraguay",
 h27 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b27 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp28 VARCHAR(255) NOT NULL DEFAULT "Italia - New Zealand",
 h28 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b28 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp29 VARCHAR(255) NOT NULL DEFAULT "Brasil - Elfenbenskysten",
 h29 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b29 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp30 VARCHAR(255) NOT NULL DEFAULT "Portugal - Nord Korea",
 h30 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b30 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp31 VARCHAR(255) NOT NULL DEFAULT "Chile - Sveits",
 h31 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b31 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp32 VARCHAR(255) NOT NULL DEFAULT "Spania - Honduras",
 h32 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b32 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp33 VARCHAR(255) NOT NULL DEFAULT "Mexico - Uruguay",
 h33 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b33 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp34 VARCHAR(255) NOT NULL DEFAULT "Frankrike - Sor Afrika",
 h34 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b34 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp35 VARCHAR(255) NOT NULL DEFAULT "Nigeria - Sor Korea",
 h35 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b35 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp36 VARCHAR(255) NOT NULL DEFAULT "Hellas - Argentina",
 h36 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b36 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp37 VARCHAR(255) NOT NULL DEFAULT "Slovenia - England",
 h37 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b37 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp38 VARCHAR(255) NOT NULL DEFAULT "USA - Algerie",
 h38 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b38 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp39 VARCHAR(255) NOT NULL DEFAULT "Ghana - Tyskland",
 h39 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b39 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp40 VARCHAR(255) NOT NULL DEFAULT "Australia - Serbia",
 h40 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b40 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp41 VARCHAR(255) NOT NULL DEFAULT "Slovakia - Italia",
 h41 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b41 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp42 VARCHAR(255) NOT NULL DEFAULT "Paraguay - New Zealand",
 h42 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b42 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp43 VARCHAR(255) NOT NULL DEFAULT "Danmark - Japan",
 h43 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b43 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp44 VARCHAR(255) NOT NULL DEFAULT "Kamerun - Nederland",
 h44 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b44 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp45 VARCHAR(255) NOT NULL DEFAULT "Portugal - Brasil",
 h45 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b45 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp46 VARCHAR(255) NOT NULL DEFAULT "Nord Korea - Elfenbenskysten",
 h46 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b46 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp47 VARCHAR(255) NOT NULL DEFAULT "Chile - Spania",
 h47 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b47 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp48 VARCHAR(255) NOT NULL DEFAULT "Sveits - Honduras",
 h48 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b48 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 PRIMARY KEY(idresultater)
);

CREATE TABLE deltakere (
 iddeltakere INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 fornavn VARCHAR(255) NOT NULL,
 etternavn VARCHAR(255) NOT NULL,
 kamp1 VARCHAR(255) NOT NULL DEFAULT "Sor Afrika - Mexico",
 h1 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b1 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp2 VARCHAR(255) NOT NULL DEFAULT "Uruguay - Frankrike",
 h2 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b2 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp3 VARCHAR(255) NOT NULL DEFAULT "Argentina - Nigeria",
 h3 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b3 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp4 VARCHAR(255) NOT NULL DEFAULT "Sor Korea - Hellas",
 h4 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b4 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp5 VARCHAR(255) NOT NULL DEFAULT "England - USA",
 h5 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b5 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp6 VARCHAR(255) NOT NULL DEFAULT "Algerie - Slovenia",
 h6 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b6 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp7 VARCHAR(255) NOT NULL DEFAULT "Tyskland - Australia",
 h7 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b7 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp8 VARCHAR(255) NOT NULL DEFAULT "Serbia - Ghana",
 h8 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b8 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp9 VARCHAR(255) NOT NULL DEFAULT "Nederland - Danmark",
 h9 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b9 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp10 VARCHAR(255) NOT NULL DEFAULT "Japan - Kamerun",
 h10 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b10 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp11 VARCHAR(255) NOT NULL DEFAULT "Italia - Paraguay",
 h11 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b11 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp12 VARCHAR(255) NOT NULL DEFAULT "New Zealand - Slovakia",
 h12 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b12 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp13 VARCHAR(255) NOT NULL DEFAULT "Elfenbenskysten - Portugal",
 h13 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b13 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp14 VARCHAR(255) NOT NULL DEFAULT "Brasil - Nord Korea",
 h14 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b14 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp15 VARCHAR(255) NOT NULL DEFAULT "Honduras - Chile",
 h15 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b15 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp16 VARCHAR(255) NOT NULL DEFAULT "Spania - Sveits",
 h16 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b16 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp17 VARCHAR(255) NOT NULL DEFAULT "Sor Afrika - Uruguay",
 h17 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b17 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp18 VARCHAR(255) NOT NULL DEFAULT "Frankrike - Mexico",
 h18 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b18 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp19 VARCHAR(255) NOT NULL DEFAULT "Hellas - Nigeria",
 h19 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b19 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp20 VARCHAR(255) NOT NULL DEFAULT "Argentina - Sor Korea",
 h20 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b20 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp21 VARCHAR(255) NOT NULL DEFAULT "Tyskland - Serbia",
 h21 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b21 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp22 VARCHAR(255) NOT NULL DEFAULT "Slovenia - USA",
 h22 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b22 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp23 VARCHAR(255) NOT NULL DEFAULT "England - Algerie",
 h23 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b23 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp24 VARCHAR(255) NOT NULL DEFAULT "Ghana - Australia",
 h24 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b24 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp25 VARCHAR(255) NOT NULL DEFAULT "Nederland - Japan",
 h25 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b25 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp26 VARCHAR(255) NOT NULL DEFAULT "Kamerun - Danmark",
 h26 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b26 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp27 VARCHAR(255) NOT NULL DEFAULT "Slovakia - Paraguay",
 h27 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b27 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp28 VARCHAR(255) NOT NULL DEFAULT "Italia - New Zealand",
 h28 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b28 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp29 VARCHAR(255) NOT NULL DEFAULT "Brasil - Elfenbenskysten",
 h29 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b29 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp30 VARCHAR(255) NOT NULL DEFAULT "Portugal - Nord Korea",
 h30 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b30 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp31 VARCHAR(255) NOT NULL DEFAULT "Chile - Sveits",
 h31 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b31 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp32 VARCHAR(255) NOT NULL DEFAULT "Spania - Honduras",
 h32 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b32 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp33 VARCHAR(255) NOT NULL DEFAULT "Mexico - Uruguay",
 h33 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b33 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp34 VARCHAR(255) NOT NULL DEFAULT "Frankrike - Sor Afrika",
 h34 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b34 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp35 VARCHAR(255) NOT NULL DEFAULT "Nigeria - Sor Korea",
 h35 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b35 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp36 VARCHAR(255) NOT NULL DEFAULT "Hellas - Argentina",
 h36 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b36 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp37 VARCHAR(255) NOT NULL DEFAULT "Slovenia - England",
 h37 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b37 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp38 VARCHAR(255) NOT NULL DEFAULT "USA - Algerie",
 h38 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b38 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp39 VARCHAR(255) NOT NULL DEFAULT "Ghana - Tyskland",
 h39 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b39 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp40 VARCHAR(255) NOT NULL DEFAULT "Australia - Serbia",
 h40 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b40 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp41 VARCHAR(255) NOT NULL DEFAULT "Slovakia - Italia",
 h41 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b41 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp42 VARCHAR(255) NOT NULL DEFAULT "Paraguay - New Zealand",
 h42 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b42 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp43 VARCHAR(255) NOT NULL DEFAULT "Danmark - Japan",
 h43 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b43 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp44 VARCHAR(255) NOT NULL DEFAULT "Kamerun - Nederland",
 h44 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b44 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp45 VARCHAR(255) NOT NULL DEFAULT "Portugal - Brasil",
 h45 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b45 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp46 VARCHAR(255) NOT NULL DEFAULT "Nord Korea - Elfenbenskysten",
 h46 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b46 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp47 VARCHAR(255) NOT NULL DEFAULT "Chile - Spania",
 h47 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b47 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 kamp48 VARCHAR(255) NOT NULL DEFAULT "Sveits - Honduras",
 h48 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 b48 INTEGER UNSIGNED NOT NULL DEFAULT "999",
 poeng INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k1slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k2slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k3slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k4slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k5slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k6slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k7slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k8slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k9slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k10slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k11slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k12slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k13slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k14slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k15slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k16slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k17slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k18slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k19slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k20slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k21slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k22slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k23slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k24slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k25slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k26slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k27slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k28slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k29slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k30slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k31slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k32slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k33slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k34slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k35slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k36slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k37slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k38slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k39slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k40slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k41slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k42slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k43slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k44slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k45slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k46slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k47slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 k48slutt INTEGER UNSIGNED NOT NULL DEFAULT "0",
 tabellpoeng INTEGER UNSIGNED NOT NULL DEFAULT "0",
 PRIMARY KEY(iddeltakere)
);

CREATE TABLE deltakergrupper (
 iddeltakergrupper INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
 deltakere_iddeltakere INTEGER UNSIGNED NOT NULL,
 lag1 VARCHAR(255) NOT NULL DEFAULT "Frankrike",
 lag2 VARCHAR(255) NOT NULL DEFAULT "Mexico",
 lag3 VARCHAR(255) NOT NULL DEFAULT "Uruguay",
 lag4 VARCHAR(255) NOT NULL DEFAULT "Sor-Afrika",
 lag5 VARCHAR(255) NOT NULL DEFAULT "Argentina",
 lag6 VARCHAR(255) NOT NULL DEFAULT "Hellas",
 lag7 VARCHAR(255) NOT NULL DEFAULT "Nigeria",
 lag8 VARCHAR(255) NOT NULL DEFAULT "Sor-Korea",
 lag9 VARCHAR(255) NOT NULL DEFAULT "England",
 lag10 VARCHAR(255) NOT NULL DEFAULT "USA",
 lag11 VARCHAR(255) NOT NULL DEFAULT "Algerie",
 lag12 VARCHAR(255) NOT NULL DEFAULT "Slovenia",
 lag13 VARCHAR(255) NOT NULL DEFAULT "Tyskland",
 lag14 VARCHAR(255) NOT NULL DEFAULT "Serbia",
 lag15 VARCHAR(255) NOT NULL DEFAULT "Australia",
 lag16 VARCHAR(255) NOT NULL DEFAULT "Ghana",
 lag17 VARCHAR(255) NOT NULL DEFAULT "Nederland",
 lag18 VARCHAR(255) NOT NULL DEFAULT "Kamerun",
 lag19 VARCHAR(255) NOT NULL DEFAULT "Danmark",
 lag20 VARCHAR(255) NOT NULL DEFAULT "Japan",
 lag21 VARCHAR(255) NOT NULL DEFAULT "Italia",
 lag22 VARCHAR(255) NOT NULL DEFAULT "Paraguay",
 lag23 VARCHAR(255) NOT NULL DEFAULT "Slovakia",
 lag24 VARCHAR(255) NOT NULL DEFAULT "New Zealand",
 lag25 VARCHAR(255) NOT NULL DEFAULT "Brasil",
 lag26 VARCHAR(255) NOT NULL DEFAULT "Portugal",
 lag27 VARCHAR(255) NOT NULL DEFAULT "Elfenbenskysten",
 lag28 VARCHAR(255) NOT NULL DEFAULT "Nord-Korea",
 lag29 VARCHAR(255) NOT NULL DEFAULT "Spania",
 lag30 VARCHAR(255) NOT NULL DEFAULT "Chile",
 lag31 VARCHAR(255) NOT NULL DEFAULT "Sveits",
 lag32 VARCHAR(255) NOT NULL DEFAULT "Honduras",
 gruppepoeng INTEGER UNSIGNED NOT NULL DEFAULT "0",
 PRIMARY KEY(iddeltakergrupper, deltakere_iddeltakere),
 INDEX deltakergrupper_FKIndex1(deltakere_iddeltakere),
 FOREIGN KEY(deltakere_iddeltakere)
   REFERENCES deltakere(iddeltakere)
     ON DELETE NO ACTION
     ON UPDATE NO ACTION
);

Endret av Haavard82
Lenke til kommentar

Du bør normalisere og designe databasen riktig før du går videre. Bruk gjerne penn og papir. Tenk først over hvilke entiteter (tabeller) du trenger, deretter hvilke relasjonstyper du trenger. Feks (hypotetisk): ett resultat består 2 land, 1 land kan ha mange resultater i forskjellige kamper. Altså ser det ut til å være et n:m forhold mellom land og resultat. Det samme gjelder også k##slutt (og n##/b##). Det holder med et enkelt attributt som heter "kslutt" om du designer databasen din litt bedre.

Et lag tilsvarer et land, sant? Isåfall lager du en tabell for land/lag, og legger til fremmednøkler istedetfor repterende kolonner. Å "hardkode" kolonner slik som dette er sjelden en god idé.

Endret av MikkelRev
Lenke til kommentar
  • 2 uker senere...

Takker.

 

Grunnet eksamen har jeg ikke fått sett på dette før idag.

 

Nå har jeg to tabeller jeg ønsker å sammenligne.

 

deltakere_resultat tabellen: h,b

kampresultat tabellen: h,b

 

 

Se koden nedenfor.

 

Jeg har fått til å sammenligne for riktig resultat, hjemme- samt bortseier.

 

Jeg sliter med uavgjort :(

 

Kan du bistå med det? :) Det hadde vært snilt av deg ;)

Jeg har forsøkt full joins, union osv. Føler ikke at jeg kommer noe vei :(

 

uavgjort koden er forøvrig feil med operandene jeg har brukt nå. h < (select etc. Vet at det er feil. Men det er der jeg stopper opp.

				//Borteseier			
 					$borteseier_sql = "SELECT 
				iddeltakere_resultat, h,b 
				FROM
				deltakere_resultat 
				WHERE kampresultat_idkampresultat = '$kampid' 
				AND
				h < b
				AND
				h < (
					SELECT b FROM kampresultat WHERE idkampresultat = '$kampid' 
					AND h != 99 
					AND b != 99 
					AND kslutt = 1
					)
				AND
				b > (
					SELECT h FROM kampresultat WHERE idkampresultat = '$kampid' 
					AND h != 99 
					AND b != 99 
					AND kslutt = 1
					)
				";
				$borteseier_resultat = mysql_query($borteseier_sql);
				$borteseier_antall = mysql_num_rows($borteseier_resultat);

				if($borteseier_antall > 0){

					$oppdater = "UPDATE `deltakere_resultat` SET poeng = poeng + 1 WHERE
					iddeltakere_resultat = '$verdi'
					AND
					kampresultat_idkampresultat = $kampid
					AND 
					kvittering = '0'";
					mysql_query($oppdater) or die("ERROR: feil1");						

				}
*/
					//uavgjort			
 					$uavgjort_sql = "SELECT 
				iddeltakere_resultat, h,b 
				FROM
				deltakere_resultat 
				WHERE kampresultat_idkampresultat = '$kampid' 
				AND
				h = b
				AND
				h < (
					SELECT b FROM kampresultat WHERE idkampresultat = '$kampid' 
					AND h != 99 
					AND b != 99 
					AND kslutt = 1
					)
				AND
				b == (
					SELECT h FROM kampresultat WHERE idkampresultat = '$kampid' 
					AND h != 99 
					AND b != 99 
					AND kslutt = 1
					)
				";
				$uavgjort_resultat = mysql_query($uavgjort_sql);
				$uavgjort_antall = mysql_num_rows($uavgjort_resultat);

				if($uavgjort_antall > 0){

					$oppdater = "UPDATE `deltakere_resultat` SET poeng = poeng + 1 WHERE
					iddeltakere_resultat = '$verdi'
					AND
					kampresultat_idkampresultat = $kampid
					AND 
					kvittering = '0'";
					mysql_query($oppdater) or die("ERROR: feil1");						

				} 

Endret av Haavard82
Lenke til kommentar

For å finne det to tabeller har felles basert på en kolonne bruker man INNER JOIN. Du sier ingenting om feilmeldinger du får. Bare at det ikke virker.

Ditt problem tror jeg er at du gjør ting unødvendig komplisert, og dermed blir det også fort rot og lett å miste oversikt. Både for deg selv og for andre som skal hjelpe deg/prøve å sette seg inn i koden din. Har du re-designet databasen din? Siden en kamp alltid er enten H, U eller B ville jeg nok feks hatt én egen kolonne som forteller det, og ikke en for hver. Jeg reiser bort en god ukes tid fra imorge, så får håpe noen andre kan hjelpe deg videre :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...