2016-02-05 50 views
-1

新手形式進入這裏 - 我幾乎一無所知腳本,所以請多多包涵。PHP腳本來驗證對MySQL表

通過盲目的試驗和錯誤 - 以及兩個值得閱讀的月份 - 我發現並修改了一個工作腳本,它將一個名爲「EID」的Web表單條目與我在MySQL數據庫。現在

,我想加碼和腳本添加更多的功能。該Web窗體還包含一個名爲「名稱」的框,我想在驗證「EID」字段的同時針對名爲「名稱」的表中的條目進行驗證。我可以很容易地檢查「名稱」項針對另一個數據庫中的表,但是這並不完全做我需要,因爲每個名稱是特定於自身的EID,我必須能夠驗證用戶已經進入一個都正確的名字以及他或她自己的EID號碼。我正在閱讀,我需要在關係一對一場景中加入兩個數據庫以完成此功能的服務器端,但我不知道如何查詢這樣的數據庫設置並返回響應。

我怎樣才能國防部這個現有的腳本同時檢查名稱和EID針對這些新表?

這裏是我的腳本 - 我敢肯定,這不是很漂亮,但正如我剛纔所說,它的工作。

<?PHP 

class MyCustomValidation extends FM_ExtensionModule 
{ 

    function DoValidate(&$formvars, &$error_hash) 
    { 
     //connect to DB 
     $db = mysql_connect("mydatabase","myaccount ","mypassword"); 
     if(!$db) 
     { 
      return false; 
     } 

     if(!mysql_select_db("mydatabase",$db)) 
     { 
      return false; 
     } 

     //Check the Employee ID Number 
     if(!isset($formvars["EID"])) 
     { 
      $error_hash["EID"]="Please enter a valid Employee ID Number"; 
      return false; 
     } 

     $EID = $formvars["EID"]; 


     $result = mysql_query("select * from EID where EID='$EID'"); 

     if(!$result || mysql_num_rows($result) <= 0) 
     { 
      $error_hash["EID"]="We're sorry, but the Employee ID number you entered, '$EID', was not found in our databases. "; 
      return false; 
     } 


     return true; 
    } 
} 
?> 
+0

丟失的代碼:( – Dave

+0

@Dave代碼在那裏,但看不見,因爲他沒有將它標記爲代碼 – Barmar

回答

1

這樣的事情(我已經省去了檢查name字段填充)。

$name = $formvars["name"]; 

$result = mysql_query("SELECT * FROM EID 
         JOIN users ON EID.EID = users.EID 
         WHERE EID.EID = '$EID' AND users.name = '$name'"); 

連接的確切細節取決於表中的名稱和列,但是這顯示了總體思路。如果EID存在,它的名字相匹配的進入

查詢只會返回一個排。

+0

謝謝!JOIN命令會影響表格還是隻查詢兩個表格? – Railteacher

+0

SELECT語句不會修改任何東西,它只是查詢,要修改,你必須使用'UPDATE','INSERT'或'DELETE'。 – Barmar