0

我有一个问题,我无法得到我的代码的结果。当我尝试调试代码时。我在我的代码中使用 IF 语句。

很简单,例如:如果 kelas(基于 user_id 登录) = 1,则将其重定向到 kelas1.php,如果 kelas = 2,则重定向到 kelas 2,否则没有 kelas。

这是我的代码:

<?php
session_start();

if(!isset($_SESSION['user_id'])) {      
    header('Location: form_login_siswa.html');
}
$user_id = $_SESSION['user_id'];
include ("config.php");
$query = "SELECT kelas FROM t_siswa WHERE user_id = '$user_id'";
$hasil = mysql_query($query);

while ($data = mysql_fetch_array($hasil)) {
    $kelas = $data['kelas'];

    if($kelas = 1) {
        include ("kelas1.php");
    }
    if($kelas = 2) {
        include ("kelas2.php");
    } else {
        echo "Tidak ada kelas";
    }
}
?>

任何人,请帮助解决问题。感谢您的帮助。

谢谢你。

4

6 回答 6

4

您缺少一个else并且也没有使用正确的运算符进行比较。

此外,切换比较,以使第一个值始终是有效值。

if(1 == $kelas)
{
    include ("kelas1.php");
}
else if(2 == $kelas)
{
    include ("kelas2.php");
}
else
{
    echo "Tidak ada kelas";
}
于 2012-07-06T14:46:03.423 回答
2
$kelas = 1

是赋值

$kelas == 1

是比较

于 2012-07-06T14:45:35.110 回答
1
if($kelas = 1)

应该

if($kelas == 1)
于 2012-07-06T14:45:51.833 回答
1

尝试使用 == 而不是 = 。“=”是一个赋值运算符,表达式获取右操作数的值。

if($kelas == 1)
{
    include ("kelas1.php");
}
if($kelas == 2)
{
    include ("kelas2.php");
}
else
{
    echo "Tidak ada kelas";
}

此外,该语句将始终echo "Tidak ada kelas";if ($kelas == 1)。这是故意的吗?

于 2012-07-06T14:46:58.447 回答
0

在您的 if 语句中使用==用于测试比较而不是=用于分配的单个

于 2012-07-06T14:45:46.117 回答
0

看一下elsif 结构

while ($data = mysql_fetch_array($hasil)) {
  $kelas = $data['kelas'];

  if($kelas == 1) {
    include ("kelas1.php");
  } elseif($kelas == 2) {
    include ("kelas2.php");
  } else {
    echo "Tidak ada kelas";
  }
}

开关结构

while ($data = mysql_fetch_array($hasil)) {
  switch($data['kelas']){
    case 1:
      include ("kelas1.php");
      break;
    case 2:
      include ("kelas2.php");
      break;
    default:
    echo "Tidak ada kelas";
  }
}
于 2012-07-06T14:51:03.910 回答