remi sture Skrevet 3. oktober 2005 Del Skrevet 3. oktober 2005 Heisann! Holder på med et system for en fotballturnering. Der har jeg har en kamp-tabell hvor jeg lagrer hid (hjemmelag), bid (bortelag), hmaal (hjemmemål) og bid (bortemål), og vil utifra dette lage tabeller. Altså hvis hmaal er større enn bmaal, skal hjemmelaget få tre poeng, og målforskjellen oppdateres for begge lagene. Så skal disse sorteres etter poeng og målforskjell og deles inn klasser (som har sluttspill - Ja/Nei) og grupper. Klasseid og gruppid laget tilhører ligger i lag-tabellen min. Noen som kan gi meg et hint om hvor jeg kan begynne, og eventuelt hjelpe meg med dette? CREATE TABLE `kamp` ( `kampid` smallint(5) NOT NULL auto_increment, `baneid` smallint(5) NOT NULL default '0', `dommerid` smallint(5) default NULL, `sesongid` smallint(5) NOT NULL default '0', `datoid` smallint(5) NOT NULL default '0', `tid` varchar(5) default NULL, `hid` smallint(5) default NULL, `bid` smallint(5) default NULL, `hmaal` char(3) default NULL, `bmaal` char(3) default NULL, PRIMARY KEY (`kampid`) ) TYPE=MyISAM COMMENT='Kampinfo' AUTO_INCREMENT=21; CREATE TABLE `lag` ( `lagid` smallint(5) unsigned zerofill NOT NULL auto_increment, `klubbid` smallint(5) NOT NULL default '0', `kontaktid` smallint(5) NOT NULL default '0', `klasseid` smallint(5) NOT NULL default '0', `gruppeid` smallint(5) unsigned zerofill default NULL, `sesongid` smallint(5) NOT NULL default '0', `navn` varchar(60) NOT NULL default '', `melding` text, `betalt` char(3) default 'Nei', PRIMARY KEY (`lagid`) ) TYPE=MyISAM COMMENT='Informasjon om hvert lag ligger her' AUTO_INCREMENT=226; CREATE TABLE `klasse` ( `klasseid` smallint(5) unsigned zerofill NOT NULL auto_increment, `sesongid` smallint(5) NOT NULL default '0', `navn` varchar(40) NOT NULL default '', `beskrivelse` varchar(60) NOT NULL default '', `avgift` smallint(4) NOT NULL default '0', `sluttspill` char(3) NOT NULL default 'Nei', PRIMARY KEY (`klasseid`) ) TYPE=MyISAM COMMENT='Klasseinfo er her' AUTO_INCREMENT=23; CREATE TABLE `gruppe` ( `gruppeid` smallint(5) unsigned zerofill NOT NULL auto_increment, `klasseid` smallint(5) NOT NULL default '0', `sesongid` smallint(5) NOT NULL default '0', `navn` smallint(3) NOT NULL default '0', PRIMARY KEY (`gruppeid`) ) TYPE=MyISAM COMMENT='Gruppeinfo her!' AUTO_INCREMENT=48; Lenke til kommentar
???????? Skrevet 3. oktober 2005 Del Skrevet 3. oktober 2005 Det ble veldig uoversiktelig! Hvor skal målene oppdateres? Hvordan skal de deles inn i klasser og grupper? Det første du burde gjøre er å lage et databasekart, for å poste create tables blir mye jobb for de som skal kikke på det å ikke kjenner til forkortelsene dine eller hvordan noe henger sammen. Lenke til kommentar
remi sture Skrevet 3. oktober 2005 Forfatter Del Skrevet 3. oktober 2005 (endret) Lagene er allerede delt inn i klasser og grupper. Og jeg vil at det skal genereres en tabell for hver gruppe. Aner ikke hvordan dette kan gjøres, om jeg må opprette en tabell i databasen for dette, eller om php tar seg av hele jobben. Derfor jeg spør dere her. Endret 3. oktober 2005 av remi sture Lenke til kommentar
remi sture Skrevet 3. oktober 2005 Forfatter Del Skrevet 3. oktober 2005 (endret) Her er et bilde av database-strukturen, som du etterlyste. Ble ikke så oversiktlig då men... Altså det skal genereres en slik tabell som dette utifra kampene som er spilt: http://www.fyllingenfotball.no/2005/index....aget&kat=tabell Endret 3. oktober 2005 av remi sture Lenke til kommentar
Torbjørn Skrevet 4. oktober 2005 Del Skrevet 4. oktober 2005 Uten videre vil jeg tro at du trenger en hjemmelag_id og en bortelag_id i din kamp-tabell? Lenke til kommentar
Babelfisken Skrevet 4. oktober 2005 Del Skrevet 4. oktober 2005 Uten videre vil jeg tro at du trenger en hjemmelag_id og en bortelag_id i din kamp-tabell? hid og bid er vel akkurat det. Lenke til kommentar
remi sture Skrevet 4. oktober 2005 Forfatter Del Skrevet 4. oktober 2005 Korrekt, Babelfisken! Lenke til kommentar
remi sture Skrevet 4. oktober 2005 Forfatter Del Skrevet 4. oktober 2005 Slik som dette ser kampene ut, og det er resultatet i kampen som avgjør om det blir hjemmeseier, uavgjort eller tap for lagene som spiller. Altså hvis hjemmelaget vinner 3-1, skal de få 3 poeng, samtidig som pluss-målene blir plusset på med 3 og minus-målene plusset på med 1. For bortelaget blir det det 1 mål ekstra i pluss-målene, og 3 på minus-målene. Og dette skal da til slutt sorteres etter poeng og målforskjell, og skrives ut. Lenke til kommentar
Babelfisken Skrevet 4. oktober 2005 Del Skrevet 4. oktober 2005 (endret) Slik som dette ser kampene ut, og det er resultatet i kampen som avgjør om det blir hjemmeseier, uavgjort eller tap for lagene som spiller. Altså hvis hjemmelaget vinner 3-1, skal de få 3 poeng, samtidig som pluss-målene blir plusset på med 3 og minus-målene plusset på med 1. For bortelaget blir det det 1 mål ekstra i pluss-målene, og 3 på minus-målene. Og dette skal da til slutt sorteres etter poeng og målforskjell, og skrives ut. Om du kan kutte en del av id'ene dine kan det bli ganske mye enklere. Strengt tatt trenger du vel ikke id til sesong, klubb med mer. Dato tabellen kuttes helt ut, sov. Ellers vil du få fryktelig mange joins/sub querys. Edit: skriveleif Endret 4. oktober 2005 av Babelfisken Lenke til kommentar
Babelfisken Skrevet 4. oktober 2005 Del Skrevet 4. oktober 2005 Slik som dette ser kampene ut, og det er resultatet i kampen som avgjør om det blir hjemmeseier, uavgjort eller tap for lagene som spiller. Altså hvis hjemmelaget vinner 3-1, skal de få 3 poeng, samtidig som pluss-målene blir plusset på med 3 og minus-målene plusset på med 1. For bortelaget blir det det 1 mål ekstra i pluss-målene, og 3 på minus-målene. Og dette skal da til slutt sorteres etter poeng og målforskjell, og skrives ut. Skal for ordens skyld nevne at jeg er fersk på både php og mysql så overse alle sytax feil o.l. Jeg tror du gjør det enklere med en litt annen struktur på kampene. Hva med å ha en kamptabell og en enklere resultattabell: id, kampid, lag, hjemme, forlengs, baklengs, poeng Denne kan du oppdatere sammtidig som du oppdaterer kamp tabellen. Tanken er at hvert lag får sin rad. Når resultater legges inn skulle det være enkelt nok å bygge opp to ekstra insert i php basert på de innlagte data Del de gjerne opp i to array, en for hvert lag og legg data inn i disse. $hjemme['lag'] $hjemme['forlengs] $hjemme['baklengs'] $hjemme['poeng'] og tilsvarende for $borte[] det er da poeng som må beregnes og det blir: IF ($hjemme['forlengs'] > $hjemme['baklengs']) { $hjemme['poeng'] = 3; $borte['poeng'] = 0; } ELSEIF ($hjemme['forlengs'] = $hjemme['baklengs'] ) { $hjemme['poeng'] = 1; $borte['poeng'] = 1; } ELSEIF ( $hjemme['forlengs'] < $hjemme['baklengs'] ) { $hjemme['poeng'] = 0; $borte['poeng'] = 3; } Ved insert får da $hjemme satt kolonnen "hjemme" satt til true og false for bortelaget. Kamp tabellen er fin til å liste siste rundes kamper o.l. Den nye er enkel å rapportere sammenlagtreultater med. Det blir litt dobbellagring men mye enklere håndtering. Et select bør kunne se slik ut: Select lag, målforskjell as ToString( sum(forlengs) . ' - ' . (sum(baklengs), poeng Group by unikt_lag Order by poeng desc Her har jeg kuttet ut alle id for enkelhetens skyld. Disse kan jo skape noen sub queries. Lenke til kommentar
remi sture Skrevet 4. oktober 2005 Forfatter Del Skrevet 4. oktober 2005 (endret) Må ha med både sesong, klubb og dato i kamp-tabellen. Men har fjernet det fra datamodellen for å gjøre det mer oversiktlig. Endret 4. oktober 2005 av remi sture Lenke til kommentar
Babelfisken Skrevet 5. oktober 2005 Del Skrevet 5. oktober 2005 Må ha med både sesong, klubb og dato i kamp-tabellen. Men har fjernet det fra datamodellen for å gjøre det mer oversiktlig. Mente ikke at du skulle fjerne det bare bruke unik informasjon som unik indentifikator. For hver gang du erstatter informasjonen du egentlig trenger med en id og du senere skal spørre på disse data må du bruke en join eller sub query. Eks: Select Hjemmelag, Bortelag, Klubb , Dommer From Kamper Where Kamper.id = 1; Her kunne antagelig all denne informasjonen ligget som: - Primary key i de enkelte tabellenne de hører hjemme - fordi de er primary key i de enkelte tabellene vil de også ligge som klartekt i kamper tabellen. I stedet må du inn med et mye lenger querry for å hente ut data. Select hjemmelag = (select navn from lag where id = kamper.hid), Bortelag = (select navn from lag where id = bid) osv. Vet ikke en gang om det vil virke faktisk. Her er et eksempel som virker på en eksempeldatabase i MS SQL: SELECT Name, (SELECT productsubcategory.name FROM productsubcategory WHERE productsubcategoryid = 1) AS subcategory FROM Product WHERE (ProductID = 8) Mulig dette kan gjøres enklere men uansett vil det jeg vil kalle unødig bruk av Id felt gi deg masse arbied. Det er ikke noe galt med å bruke slike id'er men de kan skape unødig arbied i et lite, kontrollert system. Sammtidig skal man selvsagt passe seg for ikke å begrense mulighetene ved å kutte for mye. Det kan skape begrensinger før man aner. Største ulempen med å kutte ut Id i så henseende er at man kan miste kobling til historisk informasjon om navnene endres. Lenke til kommentar
remi sture Skrevet 5. oktober 2005 Forfatter Del Skrevet 5. oktober 2005 Har nå prøvd meg litt her. Får hentet ut de lagene jeg vil, og lagt til i en array jeg har kalt $tabell. Prøver så å sjekke hjemmemål og bortemål for å finne ut hvem som vinner kampen, og oppdatere variabler som jeg pusher inn i arrayet. Men hvordan kan jeg få til å oppdatere akkurat det laget som vinner kampen? Nå får alle lagene i arrayet samme verdier. Her kan dere se resultatet og koden får å få dette fram: http://julecupen.no/tabell.php http://julecupen.no/tabell.phps Her er kampene som ligger i databasen nå: Lenke til kommentar
remi sture Skrevet 14. november 2005 Forfatter Del Skrevet 14. november 2005 Hei igjen! Nå har vi begynt å ta i bruk systemet, og jeg merker nå at det er en liten feil her. Det blir registrert kamper og uavgjort, selvom det ennå ikke er registrert noe resultat. I databasen ligger det enten "null" eller ingenting i "hmaal" og "bmaal". Noen som kan hjelpe meg slik at det bare blir registrert dersom de to radene inneholder tall, altså ikke null eller er tom? http://norskwebforum.no/pastebin/1390 http://julecupen.no/tabeller.php Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå