Ik heb nu 3 tabellen:
CREATE TABLE wedstrijden (
id int(8) NOT NULL auto_increment,
thuis varchar(255) NOT NULL default '',
uit varchar(255) NOT NULL default '',
datum datetime NOT NULL default '0000-00-00 00:00:00',
thuis_pt int(2) default NULL,
uit_pt int(2) default NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE users (
id int(8) NOT NULL auto_increment,
user varchar(64) NOT NULL default '',
pass varchar(64) NOT NULL default '',
email varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE gokjes (
id int(8) NOT NULL auto_increment,
wedstrijd_id int(8) NOT NULL default '0',
user_id int(8) NOT NULL default '0',
thuis_pt int(2) NOT NULL default '0',
uit_pt int(2) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
De tabel users is dus voor gebruikers.
De tabel gokjes is voor je voorspellingen. Hier komt het dus in te staan als je een voorspelling post.
De tabel wedstrijden is om alle wedstrijden op te slaan. De administrator kan hier wedstrijden in invoeren en later de uitslag erbij zetten. De standaard van die uitslag is NULL (als er nog niets is ingevuld).
Een user (zou op deze manier moeten gaan...) krijgt op deze manier punten
•3 Punten als het helemaal goed is ge'gokt'
•1 Punt als alleen goed is ge'gokt' welke partij wint. (Bijvoorbeeld je voorspelt 3-2 maar het wordt 1-0 of 5-2. Of je voorspelt 2-2 en het wordt 5-5)
•0 Punten als het gewoon totaal fout is.
Nu moet ik dus een SQL opstellen die al deze gegevens verwerkt en het aantal punten van een user eruit laat rollen. Ik heb een klein stappenplan of zo gemaakt voor een functie die het aantal punten ophaalt:
•Krijg het id van de user binnen
•Zoek de voorspellingen op van de user
•Nu heb je dus een rijtje met id's van de voorspellingen, bijvoorbeeld : 3,6,32,56 (user heeft in totaal 4 voorspellingen geplaatst)
•Per gokjes.id (voorspelling-id) gaan we na of deze 3, 1, of 0 punten verdiend:
SELECT FROM wedstrijden WHERE gokjes.id = ja huh? Snap niet meer :-(
•Aantal punten optellen, en returnen.
Nu heb ik 2 vragen:
•Is dit stappenplan goed? Zo wordt het dus niet in 1 query gedaan.
•Waar kan ik zo'n SQL leren, om de punten per user op te halen?
Alvast bedankt :-)
Groet, Boris