Jump to content

Any ideas about this error?


oolongdavies

Recommended Posts

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 111

Line 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

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_end
EOD;

echo $detailed_movie_info;
mysql_close();
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.