oolongdavies Posted January 17, 2007 Share Posted January 17, 2007 Hi,I'm having a few problems with this code. I'm getting the following error message: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\htdocs\project\movie_details.php on line 111Line 111 is the first line below. while($review_row = mysql_fetch_array($review_result)){ $review_flag =1; $review_title[] = $review_row['review_name']; $reviewer_name[] = ucwords($review_row['review_reviewer_name']); $review[] = $review_row['review_comment']; $review_date[] = $review_row['review_date']; $review_rating[] = generate_ratings($review_row['review_rating']);}$review_query = "SELECT * FROM reviews WHERE review_movie_id ='".$_GET['movie_id']."' ORDER BY review_date DESC";$review_result = mysql_query($review_query,$link) or die(mysql_error());$i=0;while($i<sizeof($review)){ $review_details .=<<<EOD <tr> <td width='15%' valign='top' align='center'>$review_date[$i]</td> <td width='15%' valign='top'>$review_title[$i]</td> <td width='10%' valign='top'>$reviewer_name[$i]</td> <td width='50%' valign='top'>$review[$i]</td> <td width='10%' valign='top'align='center'>$review_rating[$i]</td> </tr>EOD; $i++;}I have used similar code in the same script and it works fine but I am really at a loss with this one. Any help would be greatly appreciated.Thanks in advance Link to comment https://forums.phpfreaks.com/topic/34616-any-ideas-about-this-error/ Share on other sites More sharing options...
paul2463 Posted January 17, 2007 Share Posted January 17, 2007 you need to tell us the query statementthe query is not returning a valid resource id so it has a problemif you put " or die ('Error in query: ' . mysql_error()); " on the end of the query it will tell you if it has a problem Link to comment https://forums.phpfreaks.com/topic/34616-any-ideas-about-this-error/#findComment-163075 Share on other sites More sharing options...
karthikeyan_coder Posted January 17, 2007 Share Posted January 17, 2007 Show me $review_result and mysql_error() on line 111 Link to comment https://forums.phpfreaks.com/topic/34616-any-ideas-about-this-error/#findComment-163080 Share on other sites More sharing options...
oolongdavies Posted January 17, 2007 Author Share Posted January 17, 2007 Ok, here is the complete code:At the moment, the script half-works in that it can retrieve movie info (name, actor, profit/loss etc.) from the database and display it in the table.The second table is where I am having problems - Line 111 contains the following line: while($review_row = mysql_fetch_array($review_result))I have gone over this several times and I honestly can not see any obvious problem. Any comments/suggestions would be more than welcome.<?php$link = mysql_connect("localhost","qqqqqq","qqqqqq")or die(mysql_error());mysql_select_db("mydb") or die (mysql_error());/* Function to calculate if a movie made a profit,loss or broke even */function calculate_differences($takings,$cost){ $difference = $takings - $cost; if($difference <0) { $difference = substr($difference,1); $font_color ='red'; $profit_or_loss = "$".$difference."m"; }elseif($difference >0){ $font_color ='green'; $profit_or_loss = "$".$difference."m"; }else{ $font_color ='blue'; $profit_or_loss = "Broke even"; } return "<font color='$font_color'>".$profit_or_loss."</font>";}/* Function to get the director's name from the people table */function get_director() { global $movie_director; global $director; $query_d = "SELECT people_fullname FROM people WHERE people_id='$movie_director' "; $results_d = mysql_query($query_d) or die(mysql_error()); $row_d = mysql_fetch_array($results_d); extract ($row_d); $director = $people_fullname;}/* Function to get the lead actor's name from the people table */function get_leadactor() { global $movie_leadactor; global $leadactor; $query_a = "SELECT people_fullname FROM people WHERE people_id='$movie_leadactor'"; $results_a = mysql_query($query_a) or die(mysql_error()); $row_a = mysql_fetch_array($results_a); extract ($row_a); $leadactor = $people_fullname;}function generate_ratings($review_rating){ for($i=0;$i<$review_rating;$i++) { $movie_rating .= "<img src='thumbsup.gif'> "; } return $movie_rating;}$movie_query = "SELECT * FROM movie WHERE movie_id ='".$_GET['movie_id']."'";$movie_result = mysql_query($movie_query,$link) or die(mysql_error());$movie_table_headings=<<<EOD <tr> <th>Movie Title</th> <th>Year of Release</th> <th>Movie Director</th> <th>Movie Lead Actor</th> <th>Movie Running Time</th> <th>Movie Health</th> </tr>EOD;$review_table_headings=<<<EOD <tr> <th>Date of Review</th> <th>Review Title</th> <th>Reviewer Name</th> <th>Movie Review Comments</th> <th>Rating</th> </tr>EOD;while($row = mysql_fetch_array($movie_result)){ $movie_name = $row['movie_name']; $movie_director = $row['movie_director']; $movie_leadactor = $row['movie_leadactor']; $movie_year = $row['movie_year']; $movie_running_time = $row['movie_running_time']." mins"; $movie_takings = $row['movie_takings']; $movie_cost = $row['movie_cost']; //get director's name from people table get_director($movie_director); //get lead actor's name from people table get_leadactor($movie_leadactor);}while($review_row = mysql_fetch_array($review_result)){ $review_flag =1; $review_title[] = $review_row['review_name']; $reviewer_name[] = ucwords($review_row['review_reviewer_name']); $review[] = $review_row['review_comment']; $review_date[] = $review_row['review_date']; $review_rating[] = generate_ratings($review_row['review_rating']);}$review_query = "SELECT * FROM reviews WHERE review_movie_id ='".$_GET['movie_id']."' ORDER BY review_date DESC";$review_result = mysql_query($review_query,$link) or die(mysql_error());$i=0;while($i<sizeof($review)){ $review_details .=<<<EOD <tr> <td width='15%' valign='top' align='center'>$review_date[$i]</td> <td width='15%' valign='top'>$review_title[$i]</td> <td width='10%' valign='top'>$reviewer_name[$i]</td> <td width='50%' valign='top'>$review[$i]</td> <td width='10%' valign='top'align='center'>$review_rating[$i]</td> </tr>EOD; $i++;}$movie_health = calculate_differences($movie_takings,$movie_cost);$page_start =<<<EOD<HTML> <head> <title>Details and Reviews for: $movie_name</title> </head> <body>EOD;$movie_details =<<<EOD<table width='70%' border='0' cellspacing='2' cellpadding='2' align='center'> <tr> <th colspan='6'><u><h2>$movie_name: Details</h2></u></th> </tr> $movie_table_headings <tr> <td width='33%' align='center'>$movie_name</td> <td align='center'>$movie_year</td> <td align='center'>$director</td> <td align='center'>$leadactor</td> <td align='center'>$movie_running_time</td> <td align='center'>$movie_health</td> </tr></table><br /><br />EOD;if($review_flag){ $movie_details .=<<<EOD <table width='95%' border='0' cellspacing='2' cellpadding='20' align='center'> $review_table_headings $review_details </table>EOD;}$page_end =<<<EOD </body></HTML>EOD;$detailed_movie_info =<<<EOD $page_start $movie_details $page_endEOD;echo $detailed_movie_info;mysql_close();?> Link to comment https://forums.phpfreaks.com/topic/34616-any-ideas-about-this-error/#findComment-163093 Share on other sites More sharing options...
dgiberson Posted January 17, 2007 Share Posted January 17, 2007 to me it appears your while loop is before where you attain the information from the database. Link to comment https://forums.phpfreaks.com/topic/34616-any-ideas-about-this-error/#findComment-163102 Share on other sites More sharing options...
oolongdavies Posted January 17, 2007 Author Share Posted January 17, 2007 @dgiberson ;DNice one! Link to comment https://forums.phpfreaks.com/topic/34616-any-ideas-about-this-error/#findComment-163122 Share on other sites More sharing options...
dgiberson Posted January 17, 2007 Share Posted January 17, 2007 np, anytime Link to comment https://forums.phpfreaks.com/topic/34616-any-ideas-about-this-error/#findComment-163129 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.