Php 第二个主if(empty($ureciver))语句根本不执行..我缺少什么

Php 第二个主if(empty($ureciver))语句根本不执行..我缺少什么,php,mysql,sql-update,Php,Mysql,Sql Update,我正在开发一个包含表p和表g的双表mysql数据库。 在这里,我试图检查从表“p”上的select查询返回的变量$ureciever的值是否为空,并根据该值使用会话用户名变量更新表“g”上的两个不同列“partner1”和“partner2”。在代码的一次迭代中,只能更新“partner1”和“partner2”中的一个 if(empty($ureciever) ) { { $query ="UPDATE g SET partner1= '".$_S

我正在开发一个包含表p和表g的双表mysql数据库。 在这里,我试图检查从表“p”上的select查询返回的变量$ureciever的值是否为空,并根据该值使用会话用户名变量更新表“g”上的两个不同列“partner1”和“partner2”。在代码的一次迭代中,只能更新“partner1”和“partner2”中的一个

if(empty($ureciever) ) {
        {       
$query ="UPDATE g
        SET partner1= '".$_SESSION['username']."'
        WHERE packageg = '$upackage' AND banned = 0 AND  partner1 =''
        ORDER BY useridg ASC
        LIMIT 1";
$result = mysql_query($query);
$count = mysql_affected_rows($conn);
    }
if($count == 1){
    $countdown = time() + 648000;
$query = "UPDATE p AS p
    JOIN g  AS g ON  p.username = g.partner1
    SET p.reciever = g.usernameg, p.time_expires = '$countdown'
    WHERE p.username ='".$_SESSION["username"]."'"; 
$result = mysql_query($query);
$count1 = mysql_affected_rows($conn);
}
上面的代码部分正确执行,但是如果测试的条件为false,则应该运行的备用代码根本无法运行。我已经检查了我的括号,分号,重新编码了测试条件,没有任何积极的影响。这是下面给我问题的部分

else if($count != 1){

    $query= "UPDATE g
        SET partner2 = '".$_SESSION['username']."'
        WHERE packageg = '$package' AND banned = 0 AND  partner2 =''
        ORDER BY useridg ASC
        LIMIT 1";
$result2 = mysql_query($query);
$count2 = mysql_affected_rows($conn);
}
if ($count2 == 1)

    {
        $countdown = time() + 648000;
$query = "UPDATE p AS p
        JOIN g  AS g ON  p.username = g.partner2
        SET p.reciever = g.usernameg, p.time_expires = '$countdown'
        WHERE p.username ='".$_SESSION["username"]."'"; 
$result = mysql_query($query);
$count1 = mysql_affected_rows($conn);
        }
}

else{

$_SESSION['paired'] = "You  have been matched to pay someone. Please be quick";
        }
empty($ureciever)
将返回布尔值。所以
TRUE
/
FALSE
=
''

无需检查
空($ureciever)=''
。因此,守则应为—

if(empty($ureciever)) {
    ......
}

好吧,我终于明白了。问题来自于我对$uppackage变量的使用。将下面一节中的正确形式与第二个/最后一个代码节中意外使用$package进行比较

$query ="UPDATE g
        SET partner1= '".$_SESSION['username']."'
        WHERE packageg = **'$upackage'** AND banned = 0 AND  partner1 =''
        ORDER BY useridg ASC
        LIMIT 1";
有时候我想我们只需要远离问题,做点别的事情,然后带着新的观点回来。问题解决了

 $query= "UPDATE g
        SET partner2 = '".$_SESSION['username']."'
        WHERE packageg = **'$package'** AND banned = 0 AND  partner2 =''
        ORDER BY useridg ASC
        LIMIT 1";

空返回真或假。。。您的条件0或1==“从不返回true use empty($var)| |$var==”“首先,如果(empty($ureciever)==”)错误,则不必检查“”empty本身,检查它以确保(empty($ureciever))正确。我已经花了好几个小时来修改代码,我觉得这些修改可能会对代码产生影响。我把它改回来了。