php
  • mysql
  • codeigniter
  • 2016-03-04 101 views 1 likes 
    1

    我要檢查或者電子郵件,身份證號碼或護照號碼之前一直如此登記,我用這個查詢:檢查數據是否已經存在或不

    $qryc = "SELECT user_id FROM users WHERE login='".$this->input->post('email')."' 
         OR ic_number='".$this->input->post('ic_number')."' OR passport_number='".$this->input->post('passport_number')."'"; 
         $sqlc = mysql_query($qryc); 
         $rsc = mysql_fetch_array($sqlc); 
         $rowc = mysql_num_rows($sqlc); 
         if($rowc > 0){ 
    
         redirect('registration/view_error/'.$rsc['user_id']); 
         }else{ 
         $qryuser = "INSERT INTO users (login,password,user_type,ic_number,passport_number,user_application_status,verification_code) 
            VALUES ('".$email."', 
              '".$password_hashed."', 
              '2', 
              '".$ic_number."', 
              '".$passport_number."', 
              '0', 
              '".$verification_code."')"; 
         $sqluser = mysql_query($qryuser); 
         $userid = mysql_insert_id(); 
    

    如果已經存在的數據,它會帶來錯誤頁面給用戶。如果沒有,將有謝謝你的網頁。我的查詢的問題是,如果用戶從未註冊過,它仍然出現錯誤頁面,告訴他們數據庫中已存在數據。

    否則,有沒有其他的方法來檢查數據庫中是否已經存在數據?

    +0

    echo this variable $ qryc and show it to our – rahul

    +0

    'SELECT user_id FROM users WHERE login='[email protected]'AND ic_number ='232342'AND passport_number ='''這是查詢時我沒有填寫護照號碼字段 –

    回答

    0

    您正在查看DB針對email,ic_numberpassport_number。 是否有可能其中一個字段爲空?然後它可以匹配一些數據庫行,它也是空的,你有記錄。 在撰寫查詢之前,您應該檢查空值。

    你應該改變你的查詢看起來像這樣:

    $icNumber = $this->input->post('ic_number'); 
    $passportNumber = $this->input->post('passport_number'); 
    
    $qryc = "SELECT user_id FROM users WHERE login='".$this->input->post('email')."'"; 
    
    if ((isset($icNumber) && trim($icNumber) != '')) 
    { 
    $qryc .= " OR ic_number='".$icNumber."'"; 
    } 
    
    if ((isset($passportNumber) && trim($passportNumber) != '')) 
    { 
    $qryc .= " OR passport_number='".$passportNumber."'"; 
    } 
    
    +0

    這是工作!非常感謝你! :D –

    0

    確保所有字段(電子郵件,身份證號碼或護照號碼)包含值,還可以嘗試打印$ RSC,看看是否有是任何行被返回。

    +0

    忘記告訴你,IC號碼和護照字段不是兩個都需要。它是一個,但不能留空兩個 –

    +0

    @bennybenito如果只有一個值是空白的,這就是爲什麼你從DB – Maarty

    +0

    好的結果,這意味着,我應該使用AND和OR條件? –

    相關問題