Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php代码添加while循环条件_Php_Html_While Loop - Fatal编程技术网

使用php代码添加while循环条件

使用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[

我正在尝试使用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['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++;
}