簡體   English   中英

在兩個具有相同名稱列的表中檢查重復項

[英]Checking for duplicates in two tables with same name columns

我是編程語言有限的業余愛好者,請幫助。 我有以下代碼:

try
  {
     $stmt = $DB_con->prepare("SELECT user_email FROM m_users WHERE user_email=:umail");
     $stmt->execute(array(':umail'=>$umail));
     $row=$stmt->fetch(PDO::FETCH_ASSOC);

     if($row['user_email']==$umail) {
        $error[] = "Sorry but someone has already registered with this email address !";
     }
     else
     {
        if($user->register($umail,$ucountry,$uip)) 
        {
            $user->redirect('m_c.php');
        }
     }
 }
 catch(PDOException $e)
 {
    echo $e->getMessage();
 }

此代碼按原樣執行-僅在一個名為m_users表中查找重復的電子郵件,如果發現一個, m_users引發通知。

我想要的是它看起來並在名為f_users附加表中檢查WELL,它具有完全相同的列結構。 我嘗試了不同的技巧,無濟於事。 提前謝謝了。

我的PHP非常生銹,但是您可以運行另一個查詢並在有條件的情況下進行檢查:

$stmt = $DB_con->prepare("SELECT user_email FROM m_users WHERE user_email=:umail");
$stmt->execute(array(':umail'=>$umail));
$row=$stmt->fetch(PDO::FETCH_ASSOC);

$stmt = $DB_con->prepare("SELECT user_email FROM f_users WHERE user_email=:umail");
$stmt->execute(array(':umail'=>$umail));
$row_2=$stmt->fetch(PDO::FETCH_ASSOC);

if($row['user_email']==$umail or $row_2['user_email']=$umail) {
   $error[] = "Sorry but someone has already registered with this email address !";
}

您是否可以更改SQL查詢,以便在一個查詢中在兩個表中查找電子郵件地址?

SELECT user_email FROM m_users WHERE user_email=:umail 
UNION 
SELECT user_email FROM f_users WHERE user_email=:umail

就我所讀的內容(我只是在猜測),您有一個供男性用戶使用的表,另一個供女性用戶使用的表,您可以通過將一個表轉儲到另一個表中並添加一列性別來合並兩個表。 現在,有很多方法可以解決您的問題,但是我建議您這樣做,它添加了另一個else語句並運行相同的查詢,但是更改了表名。

<?php 
try{
    $stmt = $DB_con->prepare("SELECT user_email
        FROM m_users 
        WHERE user_email=:umail");
    $stmt->execute(array(':umail'=>$umail));
    $row=$stmt->fetch(PDO::FETCH_ASSOC);

    if($row['user_email']==$umail) {
        $error[] = "Sorry but someone has already registered with this  email address !";
    }else{
        $stmt = $DB_con->prepare("SELECT user_email
        FROM f_users 
        WHERE user_email=:umail");
        $stmt->execute(array(':umail'=>$umail));
        $row=$stmt->fetch(PDO::FETCH_ASSOC);
        if($row['user_email']==$umail) {
            $error[] = "Sorry but someone has already registered with this  email address !";
        }
    }else{
        if($user->register($umail,$ucountry,$uip)){
                $user->redirect('m_c.php');
        }
    }
 }catch(PDOException $e){
        echo $e->getMessage();
     }

?>

暫無
暫無

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

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