我创建了一个包含 2 个表(学生、教师)的数据库。每个有 1 行。所以我有一个学生和一个老师。它们都有 id=1 因为在每个表中我都有一个名为 id 的列,它是 Auto Increment。
我做了一个登录页面,我使用了这些:
$sth_username = $dbh->prepare("SELECT name, id FROM students WHERE name = :name UNION SELECT name, id FROM teachers WHERE name = :name");
$sth_username->bindParam(":name", $name);
$sth_password = $dbh->prepare("SELECT password, salt FROM students WHERE name = :name UNION SELECT password, salt FROM teachers WHERE name = :name");
$sth_password->bindParam(":name", $name);
我能够登录并重定向到 index.php。在 index.php 里面我有这个
if (isset($_SESSION['id'])) {
$sth = $dbh->prepare("SELECT * FROM students WHERE id = :id");
$sth->bindParam(":id", $_SESSION['id']);
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
print "Name: ".$result['name']."<br>";
print "Nickname: ".$result['nickname']."<br>";
print "Town: ".$result['town']."<br>";
print "Adress: ".$result['adress']."<br>";
print "E-Mail: ".$result['email']."<br>";
如果我以学生身份登录,它会向我显示这些信息名称昵称等...我想以教师身份登录并查看教师行中的这些统计信息。(教师)姓名、(教师)昵称等......我不知道在里面写什么$sth = $dbh->prepare("SELECT * FROM students WHERE id = :id");
才能使它起作用。我尝试了 UNION 和 INNER JOIN 但它不能正常工作。我相信这是一件简单的事情,如果你能帮助我,我会很高兴。
谢谢你,对不起我的英语。