Php 我的If语句与mysql数据不比较?
Halo,我这里有一个If语句,但不起作用。 系统只是把我转到我设置的最后一页。 这不是我想要的。 我在这里想要的是当用户登录时,系统自动检查用户属于哪个部门并将其发送到正确的页面Php 我的If语句与mysql数据不比较?,php,mysql,Php,Mysql,Halo,我这里有一个If语句,但不起作用。 系统只是把我转到我设置的最后一页。 这不是我想要的。 我在这里想要的是当用户登录时,系统自动检查用户属于哪个部门并将其发送到正确的页面 $departmentsql="SELECT department FROM staff_table"; $departmentsqlresult=mysql_query($departmentsql); $departmentcount=mysql_num_rows($departmentsqlresult); i
$departmentsql="SELECT department FROM staff_table";
$departmentsqlresult=mysql_query($departmentsql);
$departmentcount=mysql_num_rows($departmentsqlresult);
if($departmentcount == "A"){
header("location:departmentA.php");
}
else if($departmentcount == "B"){
header("location:departmentB.php");
}
else if ($departmentcount == "C"){
header("location:departmentC.php")
}
无论我登录哪个用户,系统每次都会将我发送到departmentC.php。
这不是我想要的。
谁能告诉我我的代码有什么问题吗?
感谢你的回答。谢谢您有两个错误:
if($departmentcount == "A"){
header("location:departmentA.php");
}
>$departmentcount
将包含numric值
PHP不隐式地进行类型转换,所以当您比较两个值时,它将它们视为同一类型
在比较时,由于您正在将$departmentcount
与char
进行比较,因此$departmentcount
也会包含char值,但事实并非如此……因此所有if
和elseif
的条件都将变为false,因此没有输出
比较一下
if($departmentcount == 10) //compare with number
>成功比较时,标头不会重定向,因为您的标头的语法也不正确
请这样更正:
header("Location: departmentA.php");
/* you need a ^^ space here */
首先,您似乎没有使用已登录的用户并以这种方式进行查找,似乎当前您将返回所有部门,而不管登录的用户是谁
接下来,mysql\u num\u rows返回在该查询中返回的行数,您需要mysql\u fetch\u row、mysql\u fetch\u object等
$departmentsql="SELECT department FROM staff_table";
$departmentsqlresult=mysql_query($departmentsql);
$departmentcount=mysql_fetch_array($departmentsqlresult);
if($departmentcount[0] == "A"){
header("location:departmentA.php");
}
else if($departmentcount[0] == "B"){
header("location:departmentB.php");
}
else if ($departmentcount[0] == "C"){
header("location:departmentC.php")
}
首先,你得检查一下有什么问题。正如其他人所建议的那样,它可以正常工作。
如果您仍然面临问题,请使用“==” mysql_num_rows返回结果中的许多行,而不是一个字母。改为检查这个。最后,不要使用mysql,因为它已被弃用,请使用mysqli或PDO。mysql\u num\u rows
返回一个数字,但您正在将其与字符串进行比较。请确保您可以在phpOne最后的挑剔评论中将int与字符串进行比较。位置
标头需要一个完整的绝对URI:-)