Php 第二个主if(empty($ureciver))语句根本不执行..我缺少什么
我正在开发一个包含表p和表g的双表mysql数据库。 在这里,我试图检查从表“p”上的select查询返回的变量$ureciever的值是否为空,并根据该值使用会话用户名变量更新表“g”上的两个不同列“partner1”和“partner2”。在代码的一次迭代中,只能更新“partner1”和“partner2”中的一个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
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))正确。我已经花了好几个小时来修改代码,我觉得这些修改可能会对代码产生影响。我把它改回来了。