意外的T_ELSE,ENDIF

时间:2013-11-05 22:36:58

标签: php if-statement

有谁能告诉我这段代码有什么问题?

<?php if($this->session->userdata('login_user_id'));?>
<?php $a = $this->session->userdata('login_user_id');?>
<?php $data = mysql_query("SELECT * FROM user WHERE id='$a' AND specialrank='0'") 
 or die(mysql_error());while($info = mysql_fetch_array( $data ));?>
 Hi
<?php else:?>
<?php endif;?>

应该对登录用户说“嗨”,我使用了同一网站其他部分的相同编码,这些工作正常。然而,这是在抛出错误。任何想法?

3 个答案:

答案 0 :(得分:4)

if($this->session->userdata('login_user_id'));

这里有分号而不是冒号。

答案 1 :(得分:2)

;if

结尾处while出现问题

首先:

<?php if($this->session->userdata('login_user_id'));?>

应该是:

<?php if($this->session->userdata('login_user_id')): ?>

第二

<?php $data = mysql_query("SELECT * FROM user WHERE id='$a' AND specialrank='0'") 
 or die(mysql_error());while($info = mysql_fetch_array( $data ));?>
 Hi
<?php else:?>

应该(可能):

<?php $data = mysql_query("SELECT * FROM user WHERE id='$a' AND specialrank='0'") 
 or die(mysql_error());while($info = mysql_fetch_array( $data )): ?>
 Hi
<?php endwhile; ?>
<?php else: ?>

答案 2 :(得分:0)

在您的第一个if语句之后,您需要使用冒号:而不是分号;

<?php if($this->session->userdata('login_user_id')): ?>

就个人而言,我更喜欢使用大括号而不是alternative syntax来提高可读性。