2016-05-05 111 views
0

即使這些值應該相等,它也不計算,並且它直接到else事件。表列名稱與數據庫匹配,所以...正確的方法來檢查局部變量是否等於局部變量

我需要某種類型的引號($ recruitcheck == $ recruitpass)嗎?

$recruiter = $_POST["recruiter"]; 
$recruitpass = $_POST["recruitpass"]; 
$recruitcheck = mysqli_query($maindb, "select aurapass from auras where auraname='$recruiter'"); 
if($recruitcheck == $recruitpass) { 
    $badgecheck = mysqli_query($maindb, "select recruitbadge from auras where auraname='$recruiter'"); 
    if($badgecheck == "0") { 
     echo "<script>alert('Recruiter information correct, but there is no recruit badge.')</script>"; 
     exit(); 
    } else { 
     echo "<script>alert('Recruiter badge accepted.')</script>"; 
     $emailcheck = mysqli_query($maindb, "select * from auras where email='$email'"); 
     $namecheck = mysqli_query($maindb, "select * from auras where auraname='$auraname'"); 
     if(mysqli_num_rows($emailcheck) > 0 || mysqli_num_rows($namecheck) > 0){ 
      echo "<script>alert('New auraname/email is already taken.')</script>"; 
      exit(); 
     } else { 
      exit();       
     } 
    } 
} else { 
    echo "<script>alert('Aura information of recruiter is incorrect. Please, use preexisting aura information to confirm recruiter identity.')</script>"; 
    exit(); 
} 
+3

'$ recruitpass'是一個字符串,'$ recruitcheck'是__not__字符串。 –

+2

通過用'var_dump'打印出來來檢查變量。 'mysqli_query'返回一個資源,所以它永遠不會等於一個字符串值。 http://php.net/manual/en/mysqli-result.fetch-row.php – dan08

+0

獲取行以從數據庫獲取數據。 –

回答

0

$ recruitpass是一個字符串,而$ recruitcheck是mysqli_result對象。您需要在之前獲取字符串值對象,然後將其與$ recruitpass進行比較

+0

經過一番激烈的挖掘之後,我發現mysqli_fetch_assoc工作到將mysqli_query結果存儲爲字符串。由於它是以關聯方式存儲的,因此可以通過$ variable ['columnname']調用這些字符串。爲了比較,請檢查$ variable ['columnname'] == $ stringvariable。在我的情況下,$ recruitfetch = mysqli_fetch_assoc($ recruitcheck);如果($ recruitfetch ['aurapass'] == $ recruitpass {code works}。謝謝大家! –