S.M_Emamian
S.M_Emamian

Reputation: 17393

how to check two values in mysql

I am using mysql.

I would like to check two values in my users table.

$same_user = "mfalse" ;

$sql=mysql_query("SELECT * FROM users WHERE username='$email' OR phone='$phone'");
        if(mysql_num_rows($sql)>=1)
        {
            $same_user = "mfalse" ;
        }
        else
        {
            $same_user = "mtrue" ;
            mysql_query("SET CHARACTER SET utf8");
            mysql_query("insert into users (username,pass,fname,lname,phone,city)
              VALUES  (N'$email',N'$pass',N'$fname',N'$lname',N'$phone',N'$city')");
        }


        $arr = array(
        'sameuser'=>$same_user);

    return $arr ;

in the above my code, the inserted occurs but from $arr I get :

{"sameuser":"mfalse"}

why ?


updated

My function :

function regiterAnUser($an_user){
    //email,pass,fname,lname,phone,city
    $content    = explode("-",$an_user);
    $email      = $content[0];
    $pass       = $content[1];
    $fname      = $content[2];
    $lname      = $content[3];
    $phone      = $content[4];
    $city       = $content[5];

    $pass = md5($pass);


    $same_user = "mfalse" ;

    $sql=mysql_query("SELECT * FROM users WHERE username='$email' OR phone='$phone'");
    if(mysql_num_rows($sql)>=1)
    {
        $same_user = "mfalse" ;
    }
    else
    {
        $same_user = "mtrue" ;
        mysql_query("SET CHARACTER SET utf8");
        mysql_query("insert into users (username,pass,fname,lname,phone,city)
          VALUES  (N'$email',N'$pass',N'$fname',N'$lname',N'$phone',N'$city')");
    }


    $arr = array(
        'sameuser'=>$same_user);

    return $arr ;
}

Upvotes: 2

Views: 84

Answers (2)

Leandro Papasidero
Leandro Papasidero

Reputation: 3738

I would no use mysql function but, it is your choice.

I refactored your code and it works for me, please let me know

function regiterAnUser($an_user){
    $same_user = "mfalse" ;
    //email,pass,fname,lname,phone,city
    $content    = explode("-",$an_user);
    $email      = mysql_real_escape_string($content[0]);
    $pass       = mysql_real_escape_string($content[1]);
    $fname      = mysql_real_escape_string($content[2]);
    $lname      = mysql_real_escape_string($content[3]);
    $phone      = mysql_real_escape_string($content[4]);
    $city       = mysql_real_escape_string($content[5]);
    $pass = md5($pass);

    $sql=mysql_query("SELECT * FROM users WHERE username='$email' OR phone='$phone'");
    if(mysql_num_rows($sql)<1) {
        $same_user = "mtrue" ;
        mysql_query("SET CHARACTER SET utf8");
        mysql_query("insert into users (username,pass,fname,lname,phone,city)
          VALUES  (N'$email',N'$pass',N'$fname',N'$lname',N'$phone',N'$city')");
    }

    return array('sameuser'=>$same_user) ;
}

Upvotes: 1

Christoph Werner
Christoph Werner

Reputation: 141

Have you tried to output $sql?

Anyway I would recommend to count the rows with MySQL. Look here.

And please don't use mysql_* functions. They are deprecated. See here for example.

Upvotes: 0

Related Questions