将2个if语句放在一起

时间:2012-03-30 22:52:19

标签: php mysql sql

我宁愿卡住id,如果在第一侧if-set submit

中做2个if语句
    if(isset($_POST['submit'])) 
    {
        $myName = mysql_real_escape_string($_POST['myName']);
        $mydropdown = mysql_real_escape_string($_POST['mydropdown']);
        $sql = "SELECT * FROM user_pokemon WHERE id='{$myName}' AND slot='{$mydropdown}'  LIMIT 1 ";
        $result = mysql_query($sql) or die(mysql_error());

    // here we check to see if the username is all ready in the db
$sql2 = "SELECT * FROM user_pokemon WHERE  slot='{$mydropdown}' AND belongsto = '{$_SESSION['username']}' LIMIT 1 ";
    $result2 = mysql_query($sql2) or die(mysql_error());


        if (mysql_num_rows($result2)==1) { 
            echo 'A monster is all ready in that slot'; 
        }else{
            $battle_get = mysql_fetch_array($result);
            $result = mysql_query("UPDATE user_pokemon SET slot='{$mydropdown}' WHERE id = '{$myName}'")
                or die(mysql_error());
        }
    }

对于一些奇怪的resson,即使行数= 1,它也会继续做其他事情。 我想我有{和}混合我从来没有做过2如果staments是为了而且donno如果我可以?

我想知道插槽中是否有怪物。用户有6个插槽可以吗?还有一个盒子。这个脚本从盒子中挑出一个怪物,然后将怪物插入6个槽中的1个(它们选择了哪个槽)现在我需要这样做,如果在槽中准备好一个怪物它就不会将怪物添加到槽中因为它会摆脱老怪物......

2 个答案:

答案 0 :(得分:0)

这个:

belongsto = '".$_SESSION{'username'}."'

应该是:

belongsto = '{$_SESSION['username']}'

为了让代码对其他代码更具可读性,请尝试添加更多更好的评论。

同样由于if(mysql_num_rows($result2) == 1),如果有超过1个条目,则会运行else,我认为您不希望这种情况发生。也许你想改为>= 1

答案 1 :(得分:0)

正如jgibson所说,更改$ session上的括号,但是,如果要将查询限制为1个结果,则无需检查num_rows == 1,只需检查是否有结果。冗余代码可能会使事情变得混乱而且难以调试。

编辑: 另外,为什么在同一个if块中有2个查询和2个结果?您不对该块中的第一个查询/结果执行任何操作,因此应将其删除。事实上,根据您提供的代码,您似乎根本不使用该查询。