[英]How to Get HTML Tables Values and Asign into Select and Input Text Fields?
[英]How to get column values in 2 tables in a select query?
所以我有2个名为tbl_admin和tbl_users的表。 它们每个都有一个名为acct_type的列。 tbl_admin中的所有acct_type值均为1,tbl_users中的所有acct_type值为0。我知道,如果我仅为它们创建一个表,这对我来说将很容易。 我的问题是,如何查询此内容,以便可以将管理员重定向到其页面,将用户重定向到其页面。
这是我的代码
$uname = $_POST['txt_un'];
$pword = sha1($_POST['txt_pw']);
$query = "SELECT * FROM tbl_admin WHERE uname=? AND pword=?";
$stmt = $dbc->prepare($query);
$stmt->bindParam(1, $uname);
$stmt->bindParam(2, $pword);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row > 0) {
if ($row['acct_type'] == 1) {
header("Location: adminpage.php");
} elseif ($row['acct_type'] == 0) {
header("Location: userspage.php");
}
} else {
echo "<script>alert('Incorrect username/password');location.href='../index.php'</script>";
}
我知道它将不起作用,因为我仅从tbl_admin查询select。 非常感谢您的帮助,谢谢!
假设您的表(tbl_admin,tbl_users)具有相同的列数,并且这两个表中的每个用户条目都是唯一的。 如果没有,将来您将遇到一些严重的问题。
$uname = $_POST['txt_un'];
$pword = sha1($_POST['txt_pw']);
$query = "SELECT * FROM tbl_admin WHERE uname=? AND pword=? UNION SELECT * FROM tbl_users WHERE uname=? AND pword=?";
$stmt = $dbc->prepare($query);
$stmt->bindParam(1, $uname);
$stmt->bindParam(2, $pword);
$stmt->bindParam(3, $uname);
$stmt->bindParam(4, $pword);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row > 0) {
if ($row['acct_type'] == 1) {
header("Location: adminpage.php");
} elseif ($row['acct_type'] == 0) {
header("Location: userspage.php");
}
} else {
echo "<script>alert('Incorrect username/password');location.href='../index.php'</script>";
}
有关UNION的其他信息,请检查: http : //dev.mysql.com/doc/refman/5.0/en/union.html
编辑:正如Half Crazed建议的那样,仅当每个用户在两个表中都是唯一的时,才应执行此方法。 如果您有更多时间,则应该修改获取用户的方式
感谢您在此查询中对我的帮助。 非常感谢您的回答。 我已经发现,出于某些目的,我将为管理员和用户创建不同的登录表单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.