构造if,if else,else语句

时间:2010-05-01 20:12:05

标签: php

/* Errors exist, have user correct them */
    if($form->num_errors > 0)
    {
         return 1;  //Errors with form
    }
     /* No errors, add the new account to the */
    else if($database->addLeagueInformation($subname, $subformat, $subgame, $subseason, $subwindow, $subadmin, $subchampion, $subtype))
    {
        $database->addLeagueTable();
        $_SESSION['players'] == $subplayers;
        $comp_name == '$format_$game_$name_$season';
        $_SESSION['comp_name'] == $comp_name;
        return 0;  //New user added succesfully
    }
    else
    {
        return 2;  //Registration attempt failed
    }

目前还没有做这些事情:

$database->addLeagueTable();
    $_SESSION['players'] == $subplayers;
    $comp_name == '$format_$game_$name_$season';
    $_SESSION['comp_name'] == $comp_name;

有更好的方法吗?

编辑!

$comp_name = "$subformat_$subgame_$subname_$subseason";
        $_SESSION['comp_name'] = $comp_name;

此代码仅在$ subseason中产生什么? 这有明显的原因吗?

进一步编辑!

else if($database->addLeagueInformation($subname, $subformat, $subgame, $subseason, $subwindow, $subadmin, $subchampion, $subtype))
    {
        $_SESSION['players'] = $subplayers;
        $comp_name = "$subformat_$subgame_$subname_$subseason";
        $_SESSION['comp_name'] = $comp_name;
        $database->addLeagueTable();
        return 0;  //New user added succesfully
    }

功能addLeagueTable()

function addLeagueTable() {
   $q = "CREATE TABLE `$_SESSION[comp_name]` (
     `user` VARCHAR( 30 ) NOT NULL ,
        `team` VARCHAR( 40 ) NOT NULL ,
        `home_games_played` INT( 3 ) NULL DEFAULT '0',
        `home_wins` INT( 3 ) NULL DEFAULT '0',
        `home_draws` INT( 3 ) NULL DEFAULT '0',
        `home_losses` INT( 3 ) NULL DEFAULT '0',
        `home_points` INT( 3 ) NULL DEFAULT '0',
        `home_goals_for` INT( 3 ) NULL DEFAULT '0',
        `home_goals_against` INT( 3 ) NULL DEFAULT '0',
        `away_games_played` INT( 3 ) NULL DEFAULT '0',
        `away_wins` INT( 3 ) NULL DEFAULT '0',
        `away_draws` INT( 3 ) NULL DEFAULT '0',
        `away_losses` INT( 3 ) NULL DEFAULT '0',
        `away_points` INT( 3 ) NULL DEFAULT '0',
        `away_goals_for` INT( 3 ) NULL DEFAULT '0',
        `away_goals_against` INT( 3 )  NULL DEFAULT '0'
        )";
   return mysql_query($q, $this->connection);
}

任何想法?

我如何通过..

      $retval = $session->createLeague($_POST['name'], $_POST['players'], $_POST['format'], $_POST['game'], $_POST['season'], $_POST['window'], $_POST['admin'], $_POST['champion'], $_POST['type']);

然后将它们发送到addLeagueInformation发送给的函数!

2 个答案:

答案 0 :(得分:5)

==是比较运算符,但例如在$_SESSION['players'] == $subplayers;中你想要赋值运算符=
也许您对$comp_name == '$format_$game_$name_$season';也有疑问。在单引号字符串中,php不替换变量。

答案 1 :(得分:1)

  

有更好的方法吗?

实际执行作业?

$_SESSION['players'] = $subplayers;
// ------------------^ one '=' instead of two '==' (which is for comparison).
$comp_name = "{$format}_{$game}_{$name}_{$season}";
// double quotes to allow substitution,
// {...} to avoid interpreting the variable name as `$format_`.
$_SESSION['comp_name'] = $comp_name;

如果你希望它们被执行,请确保addLeagueInformation确实在测试中返回非假值。