PHP gevorderde |
|
Ik heb een quiz, en per dag mogen bezoekers hier 20 vragen invullen, maar ik zou graag willen dat ze geen dubbele vragen te zien krijgen.
Ik heb 3 tabellen, een met quizvragen, een met quiz antwoorden en een met de gegeven antwoorden.
ik heb de volgende query gemaakt:
$query = "SELECT
quizvragen.*
FROM
quizvragen,
quiz_gegevenantwoorden
WHERE
quiz_gegevenantwoorden.vraagID != quizvragen.id
ORDER BY
RAND() LIMIT 1";
$query = "SELECT quizvragen.* FROM quizvragen, quiz_gegevenantwoorden WHERE quiz_gegevenantwoorden.vraagID != quizvragen.id ORDER BY RAND() LIMIT 1";
maar deze lijkt niet te werken.
tabelstructuren
CREATE TABLE `quizvragen` (
`id` int(11) NOT NULL auto_increment,
`vraag` varchar(255) NOT NULL default '',
`goedeantwoord` int(11) NOT NULL default '0',
`actief` enum('1','0') NOT NULL default '1',
`ingevoerd` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ;
CREATE TABLE `quiz_gegevenantwoorden` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(100) NOT NULL default '',
`vraagID` int(11) NOT NULL default '0',
`antwoordID` int(11) NOT NULL default '0',
`tijd` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=53 ;
CREATE TABLE `quizvragen` ( `id` int(11) NOT NULL auto_increment, `vraag` varchar(255) NOT NULL default '', `goedeantwoord` int(11) NOT NULL default '0', `actief` enum('1','0') NOT NULL default '1', `ingevoerd` datetime NOT NULL default '0000-00-00 00:00:00', ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=26 ; CREATE TABLE `quiz_gegevenantwoorden` ( `id` int(11) NOT NULL auto_increment, `username` varchar(100) NOT NULL default '', `vraagID` int(11) NOT NULL default '0', `antwoordID` int(11) NOT NULL default '0', `tijd` datetime NOT NULL default '0000-00-00 00:00:00', ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=53 ;
|