-2

可能重复:
PHP 错误:mysql_fetch_array() 期望参数 1 是资源,给定布尔值

当我运行我的脚本时,我继续收到这些错误,我无法弄清楚我需要修复什么,因为现在它没有像我需要的那样显示任何 php。

这是我收到的错误。

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

任何帮助都会令人难以置信。

<?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>
4

1 回答 1

1

在以下两行代码中:

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

如果mysql_query失败,则您没有可传递给的可行资源mysql_num_rows()

您应该首先检查以确保查询实际运行:

$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
}

因为你有===,所以表达式的mysql_num_rows($sql) === 0计算结果为 true ,因为函数返回了 null ,因为它被调用时使用了错误的值。mysql_fetch_array因此,在使用无效资源调用时,您会遇到同样的问题。

主要线索是:mysql_num_rows() expects parameter 1 to be resource, boolean given

它需要一个资源,但它被赋予了一个不能使用的布尔值。因此,您可以调查您传递给它的变量的值以及为什么它是布尔而不是资源(在这种情况下是因为查询失败)。

于 2012-04-25T23:19:49.287 回答