Je kunt 10 willekeurige elementen per type krijgen met vragen als deze:
select word from YOUR_TABLE where type = 'noun' order by rand() limit 10;
select word from YOUR_TABLE where type = 'adj' order by rand() limit 10;
en voeg ze vervolgens samen in uw PHP-code, zoals zo:
$phrases = array();
$adj_result = mysql_query("SELECT word FROM words WHERE type = 'adj' ORDER BY RAND() LIMIT 10");
$noun_result = mysql_query("SELECT word FROM words WHERE type = 'noun' ORDER BY RAND() LIMIT 10");
while($adj_row = mysql_fetch_assoc($adj_result)) {
$noun_row = mysql_fetch_assoc($noun_result);
$phrases[$adj_row['word']] = $noun_row['word'];
}
print_r($phrases);
Houd er rekening mee dat deze code niet erg veilig is (er wordt aangenomen dat de tweede zoekopdracht altijd minstens zoveel resultaten oplevert als de eerste), maar je begrijpt het idee.
Bewerken:hier is een enkele SQL-query die het zou moeten doen:
select t1.word, t2.word
from
((select word from YOURTABLE where type = 'adj' order by rand()) as t1),
((select word from YOURTABLE where type = 'noun' order by rand()) as t2)
order by rand()
limit 10;
EDIT:voorbeeld verwijderd