PHP interesse |
|
ik zou date en time in 1 DATETIME veld zetten. Dat is wat makkelijker rekenen
CREATE TABLE geklikt1 (
userid int(11) NOT NULL default '0',
tijd datetime NOT NULL,
kliknr int(11) NOT NULL default,
PRIMARY KEY (userid),
FOREIGN KEY (userid) REFERENCES gebruikerstabel(userid)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
CREATE TABLE geklikt1 ( userid int(11) NOT NULL DEFAULT '0', tijd datetime NOT NULL, kliknr int(11) NOT NULL DEFAULT, PRIMARY KEY (userid), FOREIGN KEY (userid) REFERENCES gebruikerstabel(userid) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Hier heb ik time veranderd in tijd (geen reserved keyname als kolomnaam gebruiken) En ik heb userid laten verwijzen naar gebruikerstabel.userid, hier moet je mogelijk even wat namen aanpassen Kolom id heb ik verwijderd omdat userid in feite al uniek moet zijn.
Het hele php bestand ga ik niet voor je uitdenken maar een paar stukjes SQL kunnen geen kwaad:
Eerst de volgende query uitvoeren:
SELECT userid FROM geklikt WHERE userid = $userid;
SELECT userid FROM geklikt WHERE userid = $userid;
Controleer hier met mysql_num_rows op, wanneer er 0 uit komt:
INSERT INTO geklikt1 (userid, tijd, kliknr) VALUES ($userid, NOW(), 0);
INSERT INTO geklikt1 (userid, tijd, kliknr) VALUES ($userid, NOW(), 0);
Komt er 1 uit voer je de volgende query uit:
UPDATE geklikt1 SET kliknr + 1 WHERE userid = $userid AND TIME_TO_SEC(TIMEDIFF(geklikt1.tijd, NOW())) => (3600*24);
UPDATE geklikt1 SET kliknr + 1 WHERE userid = $userid AND TIME_TO_SEC(TIMEDIFF(geklikt1.tijd, NOW())) => (3600*24);
|