Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的If语句与mysql数据不比较?_Php_Mysql - Fatal编程技术网

Php 我的If语句与mysql数据不比较?

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

Halo,我这里有一个If语句,但不起作用。 系统只是把我转到我设置的最后一页。 这不是我想要的。 我在这里想要的是当用户登录时,系统自动检查用户属于哪个部门并将其发送到正确的页面

$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:-)