php中的do与while问题

{$MODULE_ID=$ROW['MODULE_ID'];$MODULE_POS=$ROW['MODULE_POS'];$VIEW_TYPE=$ROW['VIEW_TY... {
$MODULE_ID = $ROW['MODULE_ID'];
$MODULE_POS = $ROW['MODULE_POS'];
$VIEW_TYPE = $ROW['VIEW_TYPE'];
if ( $VIEW_TYPE == "2" )
{
do
{
if ( !find_id( $USER_MODULE_LEFT, $MODULE_ID ) )
{
if ( find_id( $USER_MODULE_RIGHT, $MODULE_ID ) )
{
break;
}
else
{
if ( $MODULE_POS == "l" && $USER_MODULE_LEFT != "ALL" )
{
$USER_MODULE_LEFT .= $MODULE_ID.",";
break;
}
else
{
if ( !( $MODULE_POS == "r" ) && !( $USER_MODULE_RIGHT != "ALL" ) )
{
break;
}
$USER_MODULE_RIGHT .= $MODULE_ID.",";
}
}
}
}
else if ( $VIEW_TYPE == "3" )
{
$MODULE_STR_HIDDEN .= $MODULE_ID.",";
} while ( 0 );
}
if ( $VIEW_TYPE != "3" )
{
if ( $MODULE_POS == "l" )
{
$MODULE_LEFT_STR .= $MODULE_ID.",";
}
else
{
$MODULE_RIGHT_STR .= $MODULE_ID.",";
}
}
$MYTABLE[$MODULE_ID] = $ROW;
}

如上代码,错误显示出现在else if ( $VIEW_TYPE == "3" )这一行,其实还有没有其它错误也不清楚,求高手解答。
展开
 我来答
songyuemiao
2009-10-13 · TA获得超过2405个赞
知道大有可为答主
回答量:1305
采纳率:0%
帮助的人:1019万
展开全部
出现错误的原因是
你的 else if ( $VIEW_TYPE == "3" )
与上面 if ( $VIEW_TYPE == "2" )
不是并列关系

而是被 if ( $VIEW_TYPE == "2" ){}包含在内了
————————————————————————
解决办法
else if ( $VIEW_TYPE == "3" )
{
$MODULE_STR_HIDDEN .= $MODULE_ID.",";
}
这一句
放到
while ( 0 );
}
的后面就可以了...
————————完整代码————————————————
{
$MODULE_ID = $ROW['MODULE_ID'];
$MODULE_POS = $ROW['MODULE_POS'];
$VIEW_TYPE = $ROW['VIEW_TYPE'];
if ( $VIEW_TYPE == "2" )
{
do
{
if ( !find_id( $USER_MODULE_LEFT, $MODULE_ID ) )
{
if ( find_id( $USER_MODULE_RIGHT, $MODULE_ID ) )
{
break;
}
else
{
if ( $MODULE_POS == "l" && $USER_MODULE_LEFT != "ALL" )
{
$USER_MODULE_LEFT .= $MODULE_ID.",";
break;
}
else
{
if ( !( $MODULE_POS == "r" ) && !( $USER_MODULE_RIGHT != "ALL" ) )
{
break;
}
$USER_MODULE_RIGHT .= $MODULE_ID.",";
}
}
}
}
while ( 0 );
}
else if ( $VIEW_TYPE == "3" )
{
$MODULE_STR_HIDDEN .= $MODULE_ID.",";
}
if ( $VIEW_TYPE != "3" )
{
if ( $MODULE_POS == "l" )
{
$MODULE_LEFT_STR .= $MODULE_ID.",";
}
else
{
$MODULE_RIGHT_STR .= $MODULE_ID.",";
}
}
$MYTABLE[$MODULE_ID] = $ROW;
}
百度网友be02abe51
2009-10-13 · TA获得超过430个赞
知道答主
回答量:386
采纳率:0%
帮助的人:179万
展开全部
老兄,你这个错误是if else语句与do while循环语句的嵌套出错啦~~~~
我调整了下你的代码,你可以去比较下,只修改了
else if ( $VIEW_TYPE == "3" )
{
$MODULE_STR_HIDDEN .= $MODULE_ID.",";
} while ( 0 );

这个地方,这个地方的while(0);是应该要放在前面那个大括号后面的啊,这样才能与do组成do while循环啊!

你把我下面帮你调整的代码再考到你的项目当中运行看看,还有没有错;

<?php
$MODULE_ID = $ROW['MODULE_ID'];
$MODULE_POS = $ROW['MODULE_POS'];
$VIEW_TYPE = $ROW['VIEW_TYPE'];
if ( $VIEW_TYPE == "2" )
{
do
{

if ( !find_id( $USER_MODULE_LEFT, $MODULE_ID ) )
{
if ( find_id( $USER_MODULE_RIGHT, $MODULE_ID ) )
{
break;
}
else
{
if ( $MODULE_POS == "l" && $USER_MODULE_LEFT != "ALL" )
{
$USER_MODULE_LEFT .= $MODULE_ID.",";
break;
}
else
{
if ( !( $MODULE_POS == "r" ) && !( $USER_MODULE_RIGHT != "ALL" ) )
{
break;
}
$USER_MODULE_RIGHT .= $MODULE_ID.",";
}
}
}

}while (0);

}else if ( $VIEW_TYPE == "3" ){
$MODULE_STR_HIDDEN .= $MODULE_ID.",";
}

if ( $VIEW_TYPE != "3" )
{
if ( $MODULE_POS == "l" )
{
$MODULE_LEFT_STR .= $MODULE_ID.",";
}
else
{
$MODULE_RIGHT_STR .= $MODULE_ID.",";
}
}
$MYTABLE[$MODULE_ID] = $ROW;

?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式