簡體   English   中英

如何比較同一表中不同列中的值

[英]how to compare the value in the same table in a different column

所以我有一個驗證表,由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問題。

有人可以幫我嗎? 謝謝

您不能這樣做,請使用子查詢,

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

注意: 請不要在新代碼中使用mysql_*函數 它們不再維護,已正式棄用 看到紅色框了嗎? 而是了解准備好的語句 ,並使用PDOMySQLi- 本文將幫助您確定哪一個。 如果您選擇PDO, 這是一個很好的教程

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM