如果和其他都是真的

时间:2012-07-04 08:52:00

标签: php conditional-statements if-statement

抱歉这个疯狂的问题,但似乎很奇怪! 我有一个代码:

if(isset($_GET['tablename'])){
    $tablename=$_GET['tablename'];
    var_dump($tablename);
    echo 'Table is set <br/>';
    if($tablename="product"){
        echo 'Table is product <br/>';
    };
    if($tablename="demanded"){
        echo 'Table is demanded <br/>';
    };
};

这就是我在展示中看到的内容:

  

字符串'要求'(长度= 8)
  表设置
  表是产品
  表是需要的

请帮忙 我想根据表值(产品或需求)运行子查询

4 个答案:

答案 0 :(得分:12)

您应该使用==进行比较,而不是=

答案 1 :(得分:4)

elseif=====一起使用(严格比较):

if($tablename == "product"){
    echo 'Table is product <br/>';
}
elseif($tablename == "demanded"){
    echo 'Table is demanded <br/>';
}

这就是您的代码应该如何:

if(isset($_GET['tablename'])){
    $tablename=$_GET['tablename'];
    var_dump($tablename);
    echo 'Table is set <br/>';

    if($tablename === "product"){
        echo 'Table is product <br/>';
    }
    elseif($tablename === "demanded"){
        echo 'Table is demanded <br/>';
    }
}

在结束大括号;的末尾也有},这也是不需要的,在上面的代码中也已修复。

你有的错误

  • 您使用的是=,而不是=====
  • 在结束大括号;条件
  • 之前,您已}

您可以进行的改进

  • 使用===代替==,因为您知道已经与字符串
  • 进行比较
  • 在您的代码中,使用elseif而不是单个if条件在语法上更正确
  • 如果这些表名用于与数据库交互,则不要将$_GET['tablename']用于生产代码,否则您的代码不提供安全性

答案 2 :(得分:0)

比较字符串使用

  strcmp(string1,string2);   //return 0 when both strings are equal 

答案 3 :(得分:0)

像这样使用

 if(isset($_GET['tablename'])){
        $tablename=$_GET['tablename'];
        var_dump($tablename);
        echo 'Table is set <br/>';
        if($tablename=="product"){
            echo 'Table is product <br/>';
        };
        if($tablename=="demanded"){
            echo 'Table is demanded <br/>';
        };
    };