The FOREACH below is giving me the error: Invalid argument supplied for foreach() Does anyone understand what I have done to cause this error? #query for words $query = " SELECT `reference` , `word` , `explanation` FROM `Bible_dictionary` WHERE `live` =1 ORDER BY RAND( ) LIMIT 5 "; $words_match_up_result=mysql_query($query); $records_found=mysql_numrows($words_match_up_result); echo $records_found . "<br>"; # output is 5 #create array from mySQL query $words = array(); $explanations = array(); $i=1; while ( $i <= $records_found ) { $words[$i] = stripslashes( mysql_result($words_match_up_result,($i -1),"word") ); $explanations[$i] = stripslashes( mysql_result($words_match_up_result,($i -1),"explanation") ); ++$i; } #shuffle arrays $match_words = shuffle ( $words ); $match_explanations = shuffle ( $explanations ); #display words on the screen foreach($match_words as $word) { echo $word . "<br />\r\n"; } The Verse of the Day âEncouragement from Godâs Wordâ http://www.TheVerseOfTheDay.info From: Ron Piggott Sent: Sunday, January 02, 2011 5:54 PM To: php-db@xxxxxxxxxxxxx Subject: Word Activity Application I am working on a word activity --- matching words and their definitions. I want to display 5 words on the left hand side and the 5 definitions on the right hand side. But I want the definitions displayed in a different order than the words so the user submits their answer. Should I use PHP to display the definitions in random order? OR Is there a way do this in mySQL that would mix and match results from different rows? This is the query gives me the 5 results SELECT `reference` , `word` , `explanation` FROM `Bible_dictionary` WHERE `live` =1 ORDER BY RAND( ) LIMIT 5 Ron The Verse of the Day âEncouragement from Godâs Wordâ http://www.TheVerseOfTheDay.info