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@lists.php.net 
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

Reply via email to