Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/33.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/else语句混淆_Php_If Statement - Fatal编程技术网

Php 将结果与if/else语句混淆

Php 将结果与if/else语句混淆,php,if-statement,Php,If Statement,这是到目前为止我的一些脚本: $check = ("SELECT username FROM users WHERE username = '$us3r'"); $check2 = ("SELECT password FROM users WHERE username = '$us3r'"); $check3 = ("SELECT userID FROM users WHERE username = '$us3r'"); $check4 = ("SELECT userrole FROM user

这是到目前为止我的一些脚本:

$check = ("SELECT username FROM users WHERE username = '$us3r'");
$check2 = ("SELECT password FROM users WHERE username = '$us3r'");
$check3 = ("SELECT userID FROM users WHERE username = '$us3r'");
$check4 = ("SELECT userrole FROM users WHERE username = '$us3r'");

//Role

$role = mysql_query($check4);
$arr5 = mysql_fetch_row($role);
$roles = ($arr5[0]);

echo $roles;

if($roles = 1) {

    //Username

    $results3 = mysql_query($check);
    $arr2 = mysql_fetch_row($results3);
    $results4 = ($arr2[0]);

    //Password

    $results5 = mysql_query($check2);
    $arr3 = mysql_fetch_row($results5);
    $results6 = ($arr3[0]);

    //UID

    $id1 = mysql_query($check3);
    $arr4 = mysql_fetch_row($id1);
    $id = ($arr4[0]);

    echo 1;

}

else if($roles = 2) {

    //Username

    $mresults3 = mysql_query($check);
    $marr2 = mysql_fetch_row($mresults3);
    $mresults4 = ($marr2[0]);

    //Password

    $mresults5 = mysql_query($check2);
    $marr3 = mysql_fetch_row($mresults5);
    $mresults6 = ($arr3[0]);

    //UID

    $mid1 = mysql_query($check3);
    $marr4 = mysql_fetch_row($mid1);
    $mid = ($marr4[0]);

    echo 2;

};

但是,如果由于某种原因,当我使用用户角色为2的用户时,回显显示为21,则我希望它是11或22:///p>您需要使用
==
进行比较,而不是
=
: 改变


如果您使用赋值(
=
)而不是比较(
=
),它不仅会计算为true,还会更改变量。

您需要使用
=
进行比较,而不是
=
: 改变


如果使用赋值(
=
)而不是比较(
=
),它不仅会计算为true,还会更改变量。

您正在设置
$roles
的值,而不是检查是否相等。尝试将代码更改为:

if($roles == 1) {
  ...
}
else if ($roles == 2) {
  ...
}

您正在设置
$roles
的值,而不是检查是否相等。尝试将代码更改为:

if($roles == 1) {
  ...
}
else if ($roles == 2) {
  ...
}
到处都是打字错误:

if($roles = 1) {
应该是

if($roles == 1) {
第一个是赋值,因此if()是赋值。新版本正在进行比较,可能会评估为false。

到处都有拼写错误:

if($roles = 1) {
应该是

if($roles == 1) {
第一个是赋值,因此if()是赋值。新版本正在进行比较,可能会计算为false。

更改

if($roles = 1) 

同样适用于

else if($roles = 2)
改变

if($roles = 1) 

同样适用于

else if($roles = 2)

那么,有什么理由你不能这么做(没有
if
/
else


那么,有什么理由你不能这么做(没有
if
/
else

我不是一个大型PHP程序员,但是
if
语句不起作用引起了我的注意:

$roles = ($arr5[0]);
if ($roles = 2) {
不是做你想做的事。这是一个等号的设定值。您要做的是将
$roles
的值设置为2

那么,为什么要在
if
语句中设置一些内容呢

然后,您可以执行以下操作:

if (($roles = $arr5[0]) == 2) {
这里,我正在设置
$roles
的值,同时检查该值

在大多数现代编程语言中,您使用双倍等号来测试相等性:

如果($roles==2){

PHP还有一个三等号,它不仅可以测试相等性,还可以测试相同性

如果($a==$b){

$a
$b
不仅彼此相等,而且它们也是相同的类型。

Hmmm

我不是一个大型PHP程序员,但是
if
语句不起作用引起了我的注意:

$roles = ($arr5[0]);
if ($roles = 2) {
不是按你想的那样做。这是一个设置值等号。你所做的是将
$roles
的值设置为2

那么,为什么要在
if
语句中设置一些内容呢

然后,您可以执行以下操作:

if (($roles = $arr5[0]) == 2) {
这里,我正在设置
$roles
的值,同时检查该值

在大多数现代编程语言中,您使用双倍等号来测试相等性:

如果($roles==2){

PHP还有一个三等号,它不仅可以测试相等性,还可以测试相同性

如果($a==$b){


$a
$b
不仅彼此相等,而且它们也是同一类型。

让你知道,你的整个代码毫无意义。
它必须只有几行,而不是两页

$us3r = mysql_real_escape_string($us3r);
$sql  = "SELECT * FROM users WHERE username = '$us3r'"; 
$res  = mysql_query($sql); 
$userdata = mysql_fetch_assoc($role); 
// now you have all user's data in the $userdata array.
// echo $userdata['username'];  for example will echo a username
// no need for the separate queries, no need to write the same code twice.

// and, finally
echo $userdata['userrole'];
//it seems the only thing your code does - echoing the actual userrole value:

为了让您知道,您的整个代码毫无意义。
它必须只有几行,而不是两页

$us3r = mysql_real_escape_string($us3r);
$sql  = "SELECT * FROM users WHERE username = '$us3r'"; 
$res  = mysql_query($sql); 
$userdata = mysql_fetch_assoc($role); 
// now you have all user's data in the $userdata array.
// echo $userdata['username'];  for example will echo a username
// no need for the separate queries, no need to write the same code twice.

// and, finally
echo $userdata['userrole'];
//it seems the only thing your code does - echoing the actual userrole value:

代码末尾的
是不必要的。请修复您的问题标题。如果/else确实有效。最近所有编号的用户怎么了?我看到他们越来越多。如果您使用谷歌帐户登录,您最终会得到一个随机生成的用户名,例如:(代码末尾的
是不必要的。请修复你的问题标题。如果/else确实有效。最近所有编号的用户怎么了?我看到他们越来越多。如果你使用谷歌帐户登录,你最终会得到这样一个随机生成的用户名:(