2014-01-17 39 views
1

,所以我有一个验证表由KEY_ID,key_verification,confirm_key和KEY_STATUS如何在不同的列在同一个表中的值进行比较

的,这是对client_verifycodez.php的SQL过程,我想比较key_verification和confirm_key的值如果相同

需要更新sql,以便当客户端输入表单中的密钥时,它将作为confirm_key进入db。所以由我希望confirm_key的值与已经存在的key_verification比较

$sql1 = "UPDATE verification SET confirm_key = '".$confirm_key."' WHERE key_id ='".$id."'"; 
    mysql_query($sql1); 

    $sql = ("SELECT * FROM verification WHERE key_verification = confirm_key"); 
    $query = mysql_query($sql) or die ("Error: " . mysql_error()); 
    $check = mysql_fetch_array($query); 

    if($check==true) 
    { 
    echo "<center>"; 
    echo "Your key is invalid!"; 
    echo "<br>"; 
    echo "<a href=client_verifycodez.php>Back </a>"; 
    echo "</center>"; 
    } 
    else 
    { 
    header("Location: home.php"); 
    } 

所以我需要的是怎样比较,这样,当key_verification和confirm_key是等于,它会去home.php要不然警报。我想我有问题的SQL。

任何人都可能帮助我吗?谢谢

+0

这看起来很奇怪。如果你的查询是真实的,那么这意味着密钥匹配,它说你的密钥是无效的。那是故意的吗? –

+0

@YUNOWORK对不起,这不是查询,但检查 – doksoos

+0

是的,好吧,但这并没有改变意义......如果你查询包含的东西,$ check变成true,因为填充变量几乎总是如此。如果它是真的,你输出的代码是无效的,即使它的有效...我没有得到它。也许我太累了,但对我来说,这种情况看起来不对。 –

回答

1

你不能做到这样,使用子查询,

"SELECT * FROM verification WHERE key_id =". $id ." AND key_verification 
= (SELECT confirm_key FROM verification WHERE key_id =". $id .")" 

注:Please, don't use mysql_* functions in new code。他们不再维护and are officially deprecated。请参阅red box?请改为了解prepared statements,并使用PDOMySQLi - this article将帮助您决定哪个。如果您选择PDO,here is a good tutorial

+0

谢谢你的工作! – doksoos

0

的mysql_num_rows()函数将返回现有的行数计数

请使用mysqli扩展总是

<?php 

$sql = ("SELECT * FROM verification WHERE key_verification = confirm_key"); 

$query = mysql_query($sql) or die ("Error: " . mysql_error()); 

//get the number of result rows 
$num_rows = mysql_num_rows($query); 

//get the details 
$check = mysql_fetch_array($query); 

if($query) 
{ 
    if($num_rows>0) 
    { 
    echo "<center>"; 
    echo "Your key is invalid!"; 
    echo "<br>"; 
    echo "<a href=client_verifycodez.php>Back </a>"; 
    echo "</center>"; 
    } 
    else 
    { 
    header("Location: home.php"); 
    } 
}