2017-04-22 77 views
-2

請幫助,我有一個重大疑問:您能否幫我解決這個問題 如何從兩個差異表中選擇所有數據並在用戶名&中登錄userpassword形成?如何以兩個表格和一個登錄表登錄

$loginEmail = $_POST['loginEmail']; 
$loginPassword = $_POST['loginPassword']; 
$corpStaffNo = $_POST['corpStaffNo']; 
$corpHRDF = $_POST['corpHRDF']; 
$corpContact = $_POST['corpContact']; 
$corEmail = $_POST['corEmail']; 
$corpFax = $_POST['corpFax']; 

$conn = mysqli_connect("localhost", "root", "", "ABC"); 
if (!$conn) { 
    die("Connection failed: ".mysqli_connect_error()); 
} 

$sql = "SELECT * FROM user_member, corp_member WHERE loginEmail='$loginEmail' AND loginPassword='$loginPassword'"; 
$result = $conn->query($sql); 
if (!$row = $result->fetch_assoc()) { 
    echo "<script type='text/javascript'> 
    alert('sdcsv'); 
    window.location.replace(\"http:://localhost\"); 
    </script>"; 
} else { 
    echo "your login"; 
} 
+0

你有存儲user_id在corp_member表嗎? –

+0

您是否嘗試過使用JOIN?你有外鍵嗎?僅供參考SQL注入方式 –

+0

備註:要在PHP中重定向,請使用[header()](http://php.net/manual/en/function.header.php)。 – Mikey

回答

0

您需要使用JOIN語句並有一個外鍵(可以選擇軟鍵或硬鍵)。

讓我們說,user_member表中有一個名爲corp_id列和corp_name表中有一個名爲列ID

$result = $comm->query("SELECT u.* FROM user_member AS u JOIN corp_member AS c ON u.corp_id = c.id WHERE loginEmail='$loginEmail' AND loginPassword='$loginPassword';"); 

那麼你可以使用頭

if (!$row = $result->fetch_assoc()) { 
    header('location: /'); 
} else { 
    $_SESSION['user'] = $row; 
    header('location: /logedin'); 
} 

//good idea to exit to force the redirect and prevent further execution 
exit; 

FYI重定向:我沒有做任何SQL escaping你應該真的這樣做。 FY12:通過命名錶感覺像corp_member是一個關係表,最有可能會有另一個表名稱corp。如果是這種情況,查詢可能看起來更像這樣

SELECT u.*, c.* FROM user_member AS u 
JOIN corp_member AS cm ON cm.id = cm.user_member_id 
JOIN corp AS c ON cm.corp_id = c.id 
+0

謝謝你回答我的問題 – Fun