登录系统为用户名和密码工作,但当试图检查"类型"字段中的确切用户名和密码时(因此不能简单地选择一行,因为这会有所不同),并根据类型加载不同的页面时,我的代码不起作用。。。我想我的PHP中需要一个不同类型的SQL函数。
代码:
require_once('connection.php');
$query=mysql_query("SELECT * from Staff WHERE username = '$username' AND password = '$password'");
$numRows = mysql_num_rows($query);
$type = mysql_query("SELECT Type from Staff WHERE username = '$username' and password = '$password'");
if ($numRows==1){
session_start();
$_SESSION["loggedin"]=$username;
if ($type = "admin"){
$url = 'url.../loggedinAdmin.php' ?>
<script language = "JavaScript">
parent.location.href = '<?php echo $url; ?>';
</script>
<?php }else if ($type = 'student'){
$url = 'url.../loggedinStudent.php' ?>
<script language = "JavaScript">
parent.location.href = '<?php echo $url; ?>';
</script>
<?php }else{
$errors .= "There is no such user. Try again or contact admin. <br/>";
非常感谢您的帮助:)
更新4
类型不是保留名称。我测试时犯了一个奇怪的错误。
提示:
不要使用mysql_*
扩展名。请改用PDO
或mysqli
。如果失败,您可以使用mysql_query(...) or die( mysql_error() );
查看sql语句的错误。
更新2
你在中有错误
if ($type = "admin"){
更改为
if ($type == "admin"){
和
if ($type = "student"){
至
if ($type == "student"){
更新3
$rh = mysql_query("SELECT `Type` from Staff WHERE username = '$username' and password = '$password'");
$row = mysql_fetch_assoc( $rh );
$type = $row['Type'];