函数返回错误响应

时间:2013-11-25 07:54:25

标签: php mysql function oop if-statement

我遇到一个函数的问题,它从第一个if()语句返回数据而不是函数中的辅助if()语句,请参阅下面的内容。

function training($type,$tid)
{   
if($type = "id") {
    $query = mysql_query("SELECT * FROM trainroster WHERE DATE = CURDATE()");
    if (mysql_num_rows($query) == 1) {
            $array = mysql_fetch_array($query);
            $id=$array['TID'];  
            }
    else { $id = "1"; }
 return $id;
}
else if($type = "topic"){
    $query = mysql_query("SELECT * FROM trainroster WHERE TID='$tid'");
    $array = mysql_fetch_array($query);

    $topic = $array['TOPIC'];
    return $topic;
}
}

这是这样称呼的:

$training = $connection->training("topic",$row['TID']);

当调用该函数时,它返回$ id而不是$ topic,即使我将$ type变量设置为“topic”。

任何帮助都非常感谢,欢呼!

3 个答案:

答案 0 :(得分:1)

使用'=='代替'='进行比较

'='是一个赋值运算符,如果用它进行比较,它将始终返回true。这就是你永远得到身份的原因。

if($type == "id") {
....
if($type == "topic"){
....

答案 1 :(得分:0)

看看你的if语句:

if($type = "id")

if($type = "topic")

你要分配,而不是比较。他们应该是:

if($type == "id")

if($type == "topic")

答案 2 :(得分:0)

if($type = "id")将字符串“id”分配给$ type并返回“id”,这是真的。

正如Harish Singh所说,你必须写if($type == "id")

防止此错误的一种方法是编写if("id" == $type),如果您忘记了一个“=”,则会导致错误。