Php 基于GET变量选择表

Php 基于GET变量选择表,php,iphone,mysql,sql,Php,Iphone,Mysql,Sql,我是一名iphone程序员,对php和mysql不太在行。我的问题是,我有一个在线高分系统,它有3个表格,用于我在游戏中的所有模式。我试图根据GET变量的输入选择表,但它不起作用。这是我用php编写的代码 $typeGame = isset($_GET['type']) ? $_GET['type'] : ""; $typeGame = mysql_real_escape_string($type); if ($typeGame === "Sprint") { $tabl

我是一名iphone程序员,对php和mysql不太在行。我的问题是,我有一个在线高分系统,它有3个表格,用于我在游戏中的所有模式。我试图根据GET变量的输入选择表,但它不起作用。这是我用php编写的代码

   $typeGame = isset($_GET['type']) ? $_GET['type']  : "";
    $typeGame = mysql_real_escape_string($type);
    if ($typeGame === "Sprint") {
$table = "highscoresSprint";
    }
    else if ($typeGame === "Normal")
    {
    $table = "highscoresNormal";
    }
    else
    {
    $table = "highscoresMarathon"; 
    }
其中,typeGame是请求的游戏类型,而$table是表

我希望你能帮助我,这根本行不通

干杯,乔

试试看:

$typeGame = mysql_real_escape_string($typeGame);
而不是:

$typeGame = mysql_real_escape_string($type);
尝试:

而不是:

$typeGame = mysql_real_escape_string($type);
我猜你想说:

$typeGame=mysql\u real\u escape\u字符串($typeGame)

我猜你想说:

$typeGame=mysql\u real\u escape\u字符串($typeGame)


Furgas answer将解决这个问题,但是我不希望看到嵌套的ELSE在切换的地方出现这种情况,所以我只想发布这个

switch (
    mysql_real_escape_string(
        isset($_GET['type']) ? $_GET['type']  : ''
    )
) {
    case 'Sprint':
        $table = "highscoresSprint"; 
        break;
    case 'Normal':
        $table = "highscoresNormal"; 
        break;
    default:
        $table = "highscoresMarathon"; 
        break;
}

Furgas answer将解决这个问题,但是我不希望看到嵌套的ELSE在切换的地方出现这种情况,所以我只想发布这个

switch (
    mysql_real_escape_string(
        isset($_GET['type']) ? $_GET['type']  : ''
    )
) {
    case 'Sprint':
        $table = "highscoresSprint"; 
        break;
    case 'Normal':
        $table = "highscoresNormal"; 
        break;
    default:
        $table = "highscoresMarathon"; 
        break;
}

输出有错误吗?
echo$\u得到['type']
返回什么?而且url必须类似于
http://test.com/game?type=Sprint
@Furgas的答案应该是正确的,我知道,必须等待4分钟才能接受:P,变量名错误的典型案例,很抱歉浪费您的时间。输出了错误吗?
echo$\u得到['type']
返回什么?而且url必须类似于
http://test.com/game?type=Sprint
@Furgas的答案应该可以,我知道,必须等待4分钟才能接受:P,变量名错误的经典案例,很抱歉浪费您的时间。为什么不==?我的个人规则是:当你确定你想要的是什么类型时,使用==(或!==)。这一点很好@Furgas。另外,我认为使用
mysql\u real\u escape\u string
是合适的,因为它是一个变量,可以通过URL修改到您的SQL字符串中。但不是变量被传递到他的查询中,至少我不是这样读的。我不认为需要显式比较类型,通常也不需要比较字符串。但是你还是说得很好,Furgas,也许我会开始实现,为什么不呢?我的个人规则是:当你确定你想要的是什么类型时,使用==(或!==)。这一点很好@Furgas。另外,我认为使用
mysql\u real\u escape\u string
是合适的,因为它是一个变量,可以通过URL修改到您的SQL字符串中。但不是变量被传递到他的查询中,至少我不是这样读的。我不认为需要显式比较类型,通常也不需要比较字符串。但是你还是说得很好,Furgas,也许我会开始实施,谢谢,伙计,这解决了我的问题,我会在4分钟内接受它。谢谢谢谢兄弟,这解决了我的问题,我会在4分钟内接受它。谢谢