-2

Possible Duplicate:
PHP Error: mysql_fetch_array() expects parameter 1 to be resource, boolean given

When I run my script I continue to get these errors and I can't figure out what I need to fix because right now it doesn't display anything php like I need it too.

Here's the errors I'm recieving.

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in    /Applications/XAMPP/xamppfiles/htdocs/WordOfMouth/root/pages/profile_page/profile_page.php on line 38

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/WordOfMouth/root/pages/profile_page/profile_page.php on line 44

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in  /Applications/XAMPP/xamppfiles/htdocs/WordOfMouth/root/pages/profile_page/profile_page.php on line 136

Any help would be incredible.

<?php
include_once("../../mysql_server/checkuserlog.php");
?>
<?php 
// Now let's initialize vars to be printed to page in the HTML section so our script does not return errors 
// they must be initialized in some server environments
$id = "";
$firstname = "";
$middlename = "";
$lastname = "";
$country = "";  
$state = "";
$city = "";
$zip = "";
$bio_body = "";
$bio_body = "";
$user_pic = "";
$blabberDisplayList = "";
// If coming from category page
if ($_GET['id']) {

 $id = $_GET['id'];

} else if (isset($_SESSION['id'])) {

 $id = $_SESSION['id'];

} else { 

   include_once "../home_page/home_page.php";

   exit();
}

$id = mysql_real_escape_string($id);
$sql = mysql_query("SELECT * FROM myMembers WHERE id='$id' LIMIT 1");

 if (mysql_num_rows($sql) === 0) { // evaluate the count
 echo("ERROR");
     exit();
}
// ------- END MAKE SURE PERSON EXISTS IN DATABASE ---------
// Make sure this person a visitor is trying to view actually exists
while($row = mysql_fetch_array($sql)){ 
$firstname = $row["firstname"];
$lastname = $row["lastname"];
$country = $row["country"]; 
$state = $row["state"];
$city = $row["city"];
$sign_up_date = $row["sign_up_date"];
    $sign_up_date = strftime("%b %d, %Y", strtotime($sign_up_date));
$last_log_date = $row["last_log_date"];
    $last_log_date = strftime("%b %d, %Y", strtotime($last_log_date));  
$bio_body = $row["bio_body"];   
$bio_body = str_replace("&amp;#39;", "'", $bio_body);
$bio_body = stripslashes($bio_body);
$website = $row["website"];
$youtube = $row["youtube"];
$facebook = $row["facebook"];
$twitter = $row["twitter"];
$friend_array = $row["friend_array"];
///////  Mechanism to Display Pic. See if they have uploaded a pic or not     //////////////////////////
$check_pic = "../../members/$id/image01.jpg";
$default_pic = "../../members/0/image01.jpg";
if (file_exists($check_pic)) {
$user_pic = "<img src=\"$check_pic?$cacheBuster\" width=\"218px\" />"; 
} else {
$user_pic = "<img src=\"$default_pic\" width=\"218px\" />"; 
}

}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html" />
<meta name="Description" content="Profile for <?php echo "$username"; ?>" />
<meta name="Keywords" content="<?php echo "$username, $city, $state, $country"; ?>" />
<meta name="rating" content="General" />
<meta name="ROBOTS" content="All" />
<title>Profile Page</title>
<link href="../../style.css" rel="stylesheet" type="text/css" />
<link rel="icon" href="#" type="image/x-icon" /> <!-- INSERT ICON -->
<link rel="shortcut icon" href="#" type="image/x-icon" /> <!-- AND HERE -->
<script src="../../jquery-1.4.2.js" type="text/javascript"></script>

</head>
<body>
<div class="wrapOverall">
<?php include_once '../../templates/decide_header.php'; ?>
<table width="900" border="0" style="background-color:#F2F2F2; border:#999 1px solid;" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="738"><br />
      <table width="90%" border="0" align="center" cellpadding="6">
      <tr>
        <td width="48%" valign="top">
        <?php print "$firstname $lastname"; ?>
        <br />
        <?php print "$user_pic"; ?>
        <br />
        Member Since: <?php print "$sign_up_date"; ?>
        <br />
       <?php print "$youtubeChannel"; ?>
       </td>
        <td width="52%" valign="top">
        <br />
        <strong><u><?php print "$firstname $lastname"; ?>'s Blabs:</u></strong>
        <br />
        <?php print "$the_blab_form"; ?>
        <div style="width:100%; height:180px; overflow:auto; overflow-x:hidden;">
        <?php print "$blabberDisplayList"; ?>
        </div>
        <br />
        <br />
        <strong><u><?php print "$firstname $lastname"; ?>'s Location Details:</u></strong>
    <br />
    <?php print "$city"; ?> &bull; <?php print "$state"; ?> &bull; <?php print "$country"; ?>
    <br />
    <br />
    <strong><u>About <?php print "$firstname $lastname"; ?></u></strong>
    <br />
    <?php print "$bio_body"; ?>
    <br />


    </td>
  </tr>
  <tr>
    <td colspan="2" valign="top">&nbsp;</td>
    </tr>
  </table>
  <p><br />
    <br />
  </p></td>
<td width="160" valign="top"><?php include_once "../../templates/right_AD_template.php"; ?    ></td>
  </tr>
</table>
<?php include_once '../../templates/footer_template.php'; ?>
</div> <!-- END wrapOverall -->
</body>
</html>
Community
  • 1
  • 1
Mike Avery
  • 37
  • 1
  • 9

1 Answers1

1

In the following two lines of code:

$sql = mysql_query("SELECT * FROM myMembers WHERE id='$id' LIMIT 1");
if (mysql_num_rows($sql) === 0) { // evaluate the count

If mysql_query fails, you do not have a viable resource that can be passed to mysql_num_rows().

You should first check to make sure the query actually ran:

$sql = mysql_query("SELECT * FROM myMembers WHERE id='$id' LIMIT 1");
if (!$sql) {
    // query failed
    echo "Query failed: " . mysql_error();
} else {
    $num_rows = mysql_num_rows($sql);
    // rest of your code
}

Because you have ===, the expression mysql_num_rows($sql) === 0 evaluates true because null was returned by the function since it was called with a bad value. Because of that, you have the same issue where mysql_fetch_array is called with an invalid resource.

The main clue is: mysql_num_rows() expects parameter 1 to be resource, boolean given.

It expects a resource, but it was given a boolean, which it cannot use. Therefore you can investigate the value of the variable you are passing to it and why it is a bool instead of a resource (in this case because the query is failing).

drew010
  • 67,054
  • 11
  • 128
  • 154
  • It's telling me the error is "No Database Selected" but I've debugged the entire connect_to_mysql and it seems to be connecting fine by itself and working on every other page. Is there something I'm doing that would cause it to unselect the database? – Mike Avery Apr 26 '12 at 01:22
  • Nothing that I can see in the code you have posted. If it is unselecting, it could be some code in one of the includes, or the variable you assign the connection to is getting overwritten (if you were assigning one at all). – drew010 Apr 26 '12 at 01:37