2017-04-22 68 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