如何在php中使用多个参数从mysql查询选择命令中获取行数

如何在php中使用多个参数从mysql查询选择命令中获取行数,php,Php,因此,我得到的错误是this mysql_num_rows()期望参数1是resource,布尔值在/home行80中给出 这是我的密码 }if($action['result'] != 'error'){ mysql_query ("INSERT INTO Matching VALUES('$firstName','$lastName','$buddy','$party','$sex','$req_sex','$skill','$req_skill','$phone')")

因此,我得到的错误是this mysql_num_rows()期望参数1是resource,布尔值在/home行80中给出

这是我的密码

}if($action['result'] != 'error'){

        mysql_query  ("INSERT INTO Matching VALUES('$firstName','$lastName','$buddy','$party','$sex','$req_sex','$skill','$req_skill','$phone')");
        $match_buddy= mysql_query("SELECT * FROM Matching WHERE Buddytype='$buddy'");
        $numrow_buddy = mysql_num_rows($match_buddy);
        if($numrow_buddy < $party-1)
    {
        echo "no matches";
        }if($numrow_buddy >= $party-1)
        {echo "$numrow_buddy";
        //matching the sex
Line 80     $match_sex= mysql_query("SELECT * FROM Matching WHERE Sex='$req_sex' AND First Name !='$firstname' AND Last Name !='$lastName'");
        $numrow_sex = mysql_num_rows($match_sex);

            if($req_sex == 3)
    {       // if they dont care which sex they have move automatically onto skill
            $match_skill= mysql_query("SELECT * FROM Matching WHERE Skill='$req_skill', First Name !='$firstname', Last Name !='$lastName'");
            $numrow_skill = mysql_num_rows($match_skill);
}if($action['result']!='error'){
mysql_query(“插入匹配值(“$firstName”、“$lastName”、“$buddy”、“$party”、“$sex”、“$req_sex”、“$skill”、“$req_skill”、“$phone”);
$match\u buddy=mysql\u查询(“从匹配中选择*,其中Buddytype='$buddy'”);
$numrow\u buddy=mysql\u num\u行($match\u buddy);
如果($numrow_buddy<$party-1)
{
回声“没有匹配”;
}如果($numrow\u buddy>=$party-1)
{echo“$numrow_buddy”;
//性别匹配
第80行$match_sex=mysql_query(“从匹配中选择*,其中sex='$req_sex'和名字!='$firstname'和姓氏!='$lastName');
$numrow\u sex=mysql\u num\u行($match\u sex);
如果($req_sex==3)
{//如果他们不在乎自己是哪种性别,他们会自动转移到技能上
$match_skill=mysql_query(“从匹配中选择*,其中skill='$req_skill',First Name!='$firstname',Last Name!='$lastName');
$numrow\u skill=mysql\u num\u行($match\u skill);

mysql\u查询将返回一个结果资源,如果出现错误,则返回
false


在mysql\u查询之后,请尝试
echo(mysql\u error())
,查看错误的实际原因。

您当前的问题是,您需要在包含空格的列名(
First name
Last name
)周围使用反勾号。因此,请更改

$match_sex= mysql_query("SELECT * FROM Matching WHERE Sex='$req_sex' AND First Name !='$firstname' AND Last Name !='$lastName'");

第二条select语句也是如此

另请注意:您的代码容易受到SQL注入的攻击。请切换到
mysqli
扩展并使用参数化查询

其他需要考虑的事情:正如@bksi在他的回答中所说的,最好计算db端的行数并只返回数字,而不是将所有数据拉到客户端。此外,您可以使用条件计数技术通过这样的查询一次性获得所有计数

选择SUM(如果Sex='$req_Sex',则为1,否则为0结束)numrow_Sex,
求和(当技能=“$req_Skill”时为1,否则为0结束)numrow_技能
从匹配
其中,`First Name`!='$firstname',`Last Name`!='$lastName''

这个网站上有你的准确错误信息的无数副本。我两天前第一次听到“客户端语言”和“mysql”,每一行代码都是一个小奇迹,我真的看了,但我几乎不知道我在写什么,更不用说看什么了。
$match_sex= mysql_query("SELECT * FROM Matching WHERE Sex='$req_sex' AND `First Name` !='$firstname' AND `Last Name` !='$lastName'");