使用php代码添加while循环条件
我正在尝试使用while循环条件增加值1,我正在开发测验生成系统,但仍停留在这里,没有找到任何解决方案,请帮助并告诉我该怎么做使用php代码添加while循环条件,php,html,while-loop,Php,Html,While Loop,我正在尝试使用while循环条件增加值1,我正在开发测验生成系统,但仍停留在这里,没有找到任何解决方案,请帮助并告诉我该怎么做 <?php $ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'"); $i = 1; while($rows=mysql_fetch_assoc($ques2)) { $i++; $qech1=$rows['optiona']; $qech2=$rows[
<?php
$ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'");
$i = 1;
while($rows=mysql_fetch_assoc($ques2))
{
$i++;
$qech1=$rows['optiona'];
$qech2=$rows['optionb'];
$qech3=$rows['optionc'];
$qech4=$rows['optiond'];
$correct=$rows['correct'];
?>
<input type='radio' name='<?php echo $i; ?>' value='<?php echo $qech1; ?>'><?php echo $qech1."<br>"; ?><br>
<input type='radio' name='<?php echo $i; ?>' value='<?php echo $qech2; ?>'><?php echo $qech2."<br>"; ?><br>
<input type='radio' name='<?php echo $i; ?>' value='<?php echo $qech3; ?>'><?php echo $qech3."<br>"; ?><br>
<input type='radio' name='<?php echo $i; ?>' value='<?php echo $qech4; ?>'><?php echo $qech4."<br>"; ?><br>
<?php
}
?>
它不递增的原因是,您在递增之后立即调用了$i
while ... {
$i++
...
..name="$i"...
}
现在,它通过循环一次并将所有名称打印为2。下一次他们都是3岁,等等
您需要的更多是一个foreach
循环。
我分配基本值只是为了测试目的。我个人会取消分配$quech1=$rows[optiona]
。您可以使用foreach
循环处理$rows
数组
<?php
$ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'");
while($rows=mysql_fetch_assoc($ques2))
{
$rows['optiona'] = "optiona";
$rows['optionb'] = "optionb";
$rows['optionc'] = "optionc";
$rows['optiond'] = "optiond";
$correct=$rows['correct'];
}
$i = 0;
foreach ($rows as $row){
$i++;?>
<input type='radio' name='<?php echo $i; ?>' value='<?php echo $row; ?>'><?php echo $row."<br>"; ?>
<?php } ?>
您可以使用herdeoc字符串来帮助您完成此操作。我做了一个简单的例子,它将以一种简单的方式输出您想要的内容。看一看:
<?php
$ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'");
$i = 1;
while($rows=mysql_fetch_assoc($ques2))
{
$qech1=$rows['optiona'];
$qech2=$rows['optionb'];
$qech3=$rows['optionc'];
$qech4=$rows['optiond'];
$correct=$rows['correct'];
echo <<<HTML
<input type='radio' name='$i' value='$qech1'>$qech1<br><br>
<input type='radio' name='$i' value='$qech2'>$qech2<br><br>
<input type='radio' name='$i' value='$qech3'>$qech3<br><br>
<input type='radio' name='$i' value='$qech4'>$qech4<br><br>
HTML;
$i++;
}
为什么有两个大括号$i++;}?第二个}属于什么?在while()
循环中,其余的代码在哪里?您有一个额外的}
,并且您的输出有..
,但这不在您的代码中。您可能正在将丢失的代码中的某个地方的$i
重置为1;$qech1=$rows['optiona']之前;我只是重新更新了主post代码,并在$qech1=$rows['optiona']之前添加了$i++;现在所有name=“2”。。。。请建议……虽然这是事实,但这并不能解决他的问题$i
开头是2,但下一个循环应该是3,然后是4,依此类推。是的。我们在说同样的话。我在寻找正确答案时抛出了这个问题。问题不是什么是起始值,问题是它不会做增量。。。它一分为二。。。。。。。。它应该上升到2,然后是3,然后是4…………为什么投票会被否决?这不能解决你的问题吗?它给你更少的代码行,并增加你想要的名称。没有投票否决,它现在是向上抱歉,这是错误的。。。。谢谢你的代码,让我来测试一下…但是你不想对每个while循环的单选按钮进行分组吗?我想分组,有多个问题,一个问题有4个选项,正如你在上面发布的代码中所述,这很好,但不是在做增量,它在所有5到6个问题中都坚持到1,1,1,1,1。。。对于下一个问题等,没有实际执行增量到2,2,2,2…抱歉,但是我测试了代码,输出是正确的。请在此处查看输出:
<?php
$ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'");
$name = 1;
while($rows=mysql_fetch_assoc($ques2))
{
$rows['optiona'] = "optiona";
$rows['optionb'] = "optionb";
$rows['optionc'] = "optionc";
$rows['optiond'] = "optiond";
$name++;
}
$i = 0;
foreach ($rows as $row){
$i++;?>
<input type='radio' id='<?php echo $i; ?>' name='<?php echo $name; ?>'value='<?php echo $row; ?>'><?php echo $row."<br>"; ?>
<?php } ?>
<?php
$ques2=mysql_query("SELECT * FROM questions WHERE course='english' AND id='$id'");
$i = 1;
while($rows=mysql_fetch_assoc($ques2))
{
$qech1=$rows['optiona'];
$qech2=$rows['optionb'];
$qech3=$rows['optionc'];
$qech4=$rows['optiond'];
$correct=$rows['correct'];
echo <<<HTML
<input type='radio' name='$i' value='$qech1'>$qech1<br><br>
<input type='radio' name='$i' value='$qech2'>$qech2<br><br>
<input type='radio' name='$i' value='$qech3'>$qech3<br><br>
<input type='radio' name='$i' value='$qech4'>$qech4<br><br>
HTML;
$i++;
}