INNER JOIN与WHERE子句不起作用

时间:2014-12-25 13:35:06

标签: php mysql while-loop

这里我试图显示来自2个表的数据:member_login_info& member_master

每个uid(用户名)和pass_(密码)应该有唯一的记录来自两个表member_login_info和member_master,cust_id作为主键和外键。

从相关的html文件中捕获用户和传递

我写的查询在这里:

$uid = $_POST['user']; 
$pass = $_POST['pass'];

$sql = "SELECT member_login_info.email, member_master.fname, member_master.lname, member_master.dob  
      FROM member_login_info INNER JOIN member_master 
      ON member_login_info.cust_id = member_master.cust_id
      WHERE member_login_info.profilename = 'user' AND member_login_info.password = 'pass'";

$rs=mysql_query($sql);


while($result=mysql_fetch_array($rs))
{
    echo 'First Name: '.$result[fname].'<br />
          Last Name: '.$result[lname].'<br />
          Email Address: '.$result[email].'<br />
          Date of Birth: '.$result[dob].'<br />';
}

然而,我收到一个错误: 警告:mysql_fetch_array()要求参数1为资源,在第20行的C:\ xampp \ htdocs \ Project S8000 \ test.php中给出布尔值

我哪里错了?任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我认为你的$ rs变量包含false,这是一个布尔值。所以,首先在mysql_fetch_array之前检查它。如果mysql_query失败,则返回false,一个布尔值。尝试添加check ..

   $result = mysql_query("SELECT member_login_info.email, member_master.fname, 
    member_master.lname, member_master.dob  
    FROM member_login_info INNER JOIN member_master 
    ON member_login_info.cust_id = member_master.cust_id
    WHERE member_login_info.profilename = 'user' AND member_login_info.password = 'pass'";
    ");

        if (!$result) { // add this check.
            die('Invalid query: ' . mysql_error());
        }