【问题标题】:how to compare the value in the same table in a different column如何比较同一表中不同列中的值
【发布时间】:2014-01-17 06:55:30
【问题描述】:

所以我有一个由 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 有问题。

谁能帮助我?谢谢

【问题讨论】:

  • 这看起来很奇怪。如果您的查询为真,这意味着密钥匹配,它表示您的密钥无效。这是故意的吗?
  • @YUNOWORK 抱歉,不是查询而是检查
  • 是的,好的,但这并没有改变意义......如果您查询包含某些内容,则 $check 变为真,因为填充的变量几乎总是为真。如果它是真的,你会输出代码是无效的,即使它是有效的......我不明白。也许我太累了,但对我来说,这种情况看起来不对。

标签: php mysql sql comparison


【解决方案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

【讨论】:

    【解决方案2】:

    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");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-01-08
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 2017-02-14
      相关资源
      最近更新 更多