2013-04-30 34 views
1

我有一個系統的代碼打印它們比較值等於:PHP:爲什麼不程序時,用相等值

//get new data from text fields 
$i = 0; 
$data = array(); 
while ($i < 7){ 
    $data[$i] = $_POST['t'.$i]; 
    $i++; 
} 

//get the ID to use in the MySQL database query 
$id=$data[0]; 

//get the existing integer from MySQL database 
$query="SELECT * FROM tbl WHERE ID='$id';"; 
$result=mysql_query($query) or die(mysql_error()); 
$mem=mysql_result($result, 0, 'Member'); 

//print to see if it's equal 
echo 'Does '.$mem.'='.$data[1].'?<br>'; 

//check equality 
if ($mem != $data[1]){ 
    echo "I'm not supposed to exist"; 
} 

的$ DATA [0]是該數據庫的唯一ID表格和$ data [1]是我們試圖得到的。

的代碼打印$mem999999.同樣的,$data[0]999999.但由於某些原因,當我通過他們通過if聲明,他們是不相等的。

+2

['MySQL'](http://php.net /manual/en/book.mysql.php)(_mysql _ * _ functions)擴展名是[*** deprecated ***](http://php.net/manual/en/function.mysql-connect.php)。我建議使用['MySQLi'](http://php.net/manual/en/book.mysqli.php)(_mysqli _ * _ functions)或['PDO'](http://php.net/manual改爲/en/book.pdo.php)。 – BlitZ 2013-04-30 07:29:46

+2

你的if語句比較$ data [1],而不是$ data [0]。 並在回聲中跳過你的單引號。或者使用:'echo「我不應該存在」;' – Osiris 2013-04-30 07:30:47

+0

此代碼應該因爲未轉義的引用而出現語法錯誤,所以它甚至不應該執行。 – Barmar 2013-04-30 07:35:36

回答

1

扮演他們爲int

if ((int)$mem != (int)$data[1]){ 
    echo "I'm not supposed to exist"; 
} 
你寫數據[0]等於$ MEM

和你比較$數據[1]

相關問題