PHP中的if-elseif语句

PHP中的if-elseif语句,php,if-statement,Php,If Statement,if和elseif语句同时工作 while($answerResult = mysql_fetch_assoc($answers)) { if($reportResult != 0 && $this->CheckAnswer($questionId,$answerResult['id'],$reportResult)) { echo '<input type="radio" name="question['.$questionId

if和elseif语句同时工作

  while($answerResult = mysql_fetch_assoc($answers))
  {
    if($reportResult != 0 && $this->CheckAnswer($questionId,$answerResult['id'],$reportResult))
    {
       echo '<input type="radio" name="question['.$questionId.']" value="'.$answerResult['id'].'" checked/>'.$answerResult['name'].'aaa&nbsp;&nbsp';
    }
    elseif($sampleResult != 0 && $this->CheckAnswer($questionId,$answerResult['id'],$sampleResult))
    {
       echo '<input type="radio" name="question['.$questionId.']" value="'.$answerResult['id'].'" checked/>'.$answerResult['name'].'hee&nbsp;&nbsp';
    }
    else
    {
       echo '<input type="radio" name="question['.$questionId.']" value="'.$answerResult['id'].'" />'.$answerResult['name'].'&nbsp;&nbsp';
    }
  }
while($answerResult=mysql\u fetch\u assoc($answers))
{
如果($reportResult!=0&&$this->CheckAnswer($questionId,$answerResult['id',$reportResult))
{
回显“”。$answerResult['name']。'aaa';
}
elseif($sampleResult!=0&&$this->CheckAnswer($questionId、$answerResult['id'],$sampleResult))
{
回显“”。$answerResult['name']。'hee';
}
其他的
{
回显“”。$answerResult['name']。'nbsp';
}
}
我试图做的是,如果我的第一个陈述是真的,那么不要看其他条件,但如果我的第一个条件是假的,那么检查elseif条件

然而,即使第一个条件为true,我的elseif条件仍然有效

我把“hee”和“aaa”放在“echos”的末尾,看哪一个正在打印

结果是:

首先,如果语句正在工作并使用“aaa”打印,则查看elseif语句并选中此项并打印“hee”


所以,我不知道我遗漏了什么,也找不到任何解决方案,有什么建议吗?

一个语句中的
if
elseif
、和
else
是排他性的,所以这不应该发生


整个语句都在while循环中。。。你确定不是第一次迭代中执行的
if
和第二次迭代中执行的
elseif
是互斥的吗?

一条语句中的
if
elseif
else
是互斥的,所以这不应该发生



整个语句都在while循环中。。。您确定第一次迭代执行的不是
,第二次迭代执行的不是
elseif

您应该在while循环的顶部尝试输出。我打赌有多行。你确定'aaa'和'hee'是在
while
循环的同一个迭代中打印的吗?据我所知,你在while循环的第二个或不同的迭代中说过可以更改结果,如果是这样,我应该更改所有结构只需在所有语句的末尾添加$I,在while的末尾添加I++;再检查一遍,还有问题,可以把我的结果截图放在这里吗?我在FAQ中没有看到您应该在while循环的顶部尝试输出。我打赌有多行。你确定'aaa'和'hee'是在
while
循环的同一个迭代中打印的吗?据我所知,你在while循环的第二个或不同的迭代中说过可以更改结果,如果是这样,我应该更改所有结构只需在所有语句的末尾添加$I,在while的末尾添加I++;再检查一遍,还有问题,可以把我的结果截图放在这里吗?我没有在FAQ中看到您可能是对的,所以我应该先检查while语句,谢谢。
mysql\u fetch\u assoc
总是从数据库查询结果中获取一行-我想您在那里发出的查询有更多的结果行,否则在
循环时,
就没有用了。我的查询是“从答案中选择*”在我的答案表中,我有:“id,name”:“1,yes”,“2,no”,“3,na”听起来很小,一个条件对于
(1,yes)
是真的,另一个条件对于
(2,no)
(例如)。通过该查询,
while
应该循环3次,因此第二次迭代对于elseif条件可能为true,这可能会改变结果,尽管第一次迭代对于if条件为true。您可能是对的,因此我应该首先检查while语句,谢谢。
mysql\u fetch\u assoc
总是从数据库查询结果中提取一行-我想您在那里发出的查询有更多的结果行,否则在
循环时就没有用了。我的查询是“SELECT*from answer”,在我的答案表中我有:“id,name”:“1,yes”,“2,no”,“3,na”好吧,听起来很简单,一个条件适用于
(1,是)
,另一个条件适用于
(2,否)
(例如)。通过该查询,
while
应该循环3次,因此第二次迭代对于elseif条件可能为真,并且这可能会改变结果,尽管第一次迭代对于if条件为真。