if else语句不能在codeigniter上工作

时间:2013-07-11 06:08:06

标签: php codeigniter if-statement

我几乎没有if语句返回true或false,并且每个语句都无法正常工作。我已经尝试了很多方法,但不知道这个问题。如果有人解决这个问题,那将非常有用。

这是我的模型代码

function exists($email){
    $this->db->where('email',$email);
    $query=$this->db->get('member_info');
    echo "model is called"; // after execution this text is shown but not the others
    if ($query->num_rows == 1) {           
        return true;        
        echo "i got one";
    }else{
        return false;
        echo "i got nothing";
    }       
}

这是我的控制器

function is_exists($email){
    echo "this is loaded";  //this line works properly
    if($this->validation_model->exists($email)){
        return false;
        echo "true"; //this doesn't 
    }else{
        return true;
        echo "false"; // this doesn't
    }
}

7 个答案:

答案 0 :(得分:3)

在打印回声部分之前,您将返回该功能。你应该在回归之前回应。

同时更改该行以检查多个

if($ query-> num_rows()> 0){

更新

试试这个方法。相应地替换表名,id值。

$query = $this->db->query("select id form your_table where email=".$email);
if ($query->num_rows() > 0 ){
echo "i got one";
return true;
}
else{
echo "i got nothing";
return false;
}

还要查看您的控制器逻辑,当存在电子邮件时它返回false。最好更改控制器的真正错误返回。

答案 1 :(得分:1)

尝试

if($this->validation_model->exists($email)){
    echo "true";
    return false; 
}else{
    echo "false";
    return true;
}  

return之前放置回声,它应该像

$query->num_rows()

答案 2 :(得分:1)

由于您使用的是return,因此return之后的代码将无法执行

return false;
echo "true"; // this doesn't because you have return before this line

return true;
echo "false"; // this doesn't because you have return before this line

答案 3 :(得分:0)

改变这个:

if ($query->num_rows == 1) { 

到此:

if ($query->num_rows() == 1) { 

并更改以下内容:

if ($query->num_rows() > 0 ){
    echo "i got one";
    return true;
}
else{
    echo "i got nothing";
    return false;
}

答案 4 :(得分:0)

更改此行:

if ($query->num_rows() == 1) {    

答案 5 :(得分:0)

//num_rows() is a function
<?php 

function exists($email){
    $this->db->where('email',$email);
    $query=$this->db->get('member_info');
    echo "model is called"; // after execution this text is shown but not the others

    //num_rows() is a function
    if ($query->num_rows() == 1) {

        //add message before return statement
        echo "i got one";
        return true;


    }else{

        echo "i got nothing";
        return false;

    }
}

答案 6 :(得分:0)

你的模特应该是:

if ($query->num_rows == 1) {           
    return true;        
}else{
    return false;
}

无需打印额外的回声。与您的控制器相同的故事

if($this->validation_model->exists($email)){
    return false;
}else{
    return true;
}

据我所知,你不能在return语句之后执行任何代码(在函数返回中)。

我的解决方案是:

控制器中的

就像这样

if($this->validation_model->exists($email)){
    echo "EMAIL EXIST";
}else{
    echo "EMAIL DOES NOT EXIST";
}