2012-07-06 120 views
0

我有一个问题,我无法得到我的代码的结果。当我尝试调试代码时。我在我的代码中使用IF语句。例如:如果kelas(基于user_id login)= 1,那么将其重定向到kelas1.php,如果kelas = 2,则重定向到kelas 2,否则不会有kelas。PHP IF其他功能不起作用

这是我的代码:

<?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"; 
    } 
} 
?> 

任何人,请帮忙解决问题。 赞赏你的帮助。

谢谢。

+1

你或许应该阅读[PHP手册语言参考部分(http://www.php.net/manual/en/langref启动。 PHP)。如果你还不习惯使用条件语言,那么很可能还有其他PHP语言的基础知识,这些基础知识也不够精通,这将严重阻碍你为提高知识水平所做的其他努力有你的基金会设置。此外,整齐地格式化您的代码。找到一个标准的编码风格并遵循它。否则,它会使代码中的调试问题非常困难并引入错误。 – 2012-07-06 14:58:34

回答

1
if($kelas = 1) 

应该

if($kelas == 1) 
2
$kelas = 1 

是分配

$kelas == 1 

是比较

0

在您若使用==进行测试比较,而不是单一的=这是赋值语句

4

您错过了else,也没有使用正确的运算符进行比较。

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

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

或使用'switch'和'case',效果相同 – miszczu 2012-07-06 14:47:26

+0

切换比较不是必需的。它只会阻止你发出错误,因为1 = $ kelas会抛出一个错误。 – Shawn 2012-07-06 14:48:00

+0

是的,但我的意思是如果你有1个变量和许多选项,你可以使用'switch'和'case'来检查所有的值而不是'elseif'或'else if'。但是这两种方式都有同样的效果。 – miszczu 2012-07-06 14:51:09

1

试着用==代替=。 “=”是赋值运算符,表达式获得右操作数的值。

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

此外,语句总是echo "Tidak ada kelas";如果($kelas == 1)。这是故意的吗?

0

看看elsif structure

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"; 
    } 
} 

还是switch structure

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"; 
    } 
} 
+0

没有什么改变@imnotquitejack。任何想法 ? – user1473757 2012-07-06 14:54:35

+0

可以通过在每种情况下回显来检查,只是为了检查它正在进行哪种情况? @ user1473757 – 2012-07-06 18:47:08