PHP问题与备选方案
我在PHP方面遇到了一个大问题,我需要你的帮助。我正在用PHP创建带有备选方案的问题。每个问题将有4个备选方案。问题将被插入一个名为“问题”的表中,所有备选方案将被插入另一个名为“备选方案”的表中。每个问题都有自己的id,甚至每个备选方案也有自己的id。但每组备选方案都会有问题id,以知道哪个备选方案属于哪个问题。然后我会选择它们作为单选按钮。 例如,如果我们有两个问题,比如PHP问题与备选方案,php,Php,我在PHP方面遇到了一个大问题,我需要你的帮助。我正在用PHP创建带有备选方案的问题。每个问题将有4个备选方案。问题将被插入一个名为“问题”的表中,所有备选方案将被插入另一个名为“备选方案”的表中。每个问题都有自己的id,甚至每个备选方案也有自己的id。但每组备选方案都会有问题id,以知道哪个备选方案属于哪个问题。然后我会选择它们作为单选按钮。 例如,如果我们有两个问题,比如 澳大利亚首都叫什么名字?(假设这个问题的id为nr 1) A) 悉尼 B) 新德里 C) 堪培拉 D) 迈米 上述所有备
A) 悉尼
B) 新德里
C) 堪培拉
D) 迈米
上述所有备选方案都有自己的id,在这种情况下,问题id为1。
A) 116
B) 117
C) 115
D) 112
3.一个物体从一座100米高的塔顶掉下来。t秒后其离地高度为100-4.9t2米。它在被丢弃2秒后失败的速度有多快?
A) 98m
B) 78m
C) 56m
D) 没有一个
等等
这是我的密码:
if (isset($_REQUEST['submit']) && $_REQUEST['submit'] != "") {
$questions = $_POST['questions'];
$alternatives = $_POST['alternatives'];
if(isset($_POST['questions']) && $_POST['questions'] != '')
{
foreach($questions as $q) {
if($q !='') {
$sql1 = " INSERT INTO questions (question) ".
" VALUES ('".$q."'); ";
if (!db_query($sql1))
$errors['err']='Unable to create question';
$question_id[] = mysql_insert_id();
}
}
foreach($question_id AS $q_id) { // I think here is the problem but I don't know how to solv'
foreach($alternatives as $alt){
if($alt !=''){
$sql = " INSERT INTO alternatives (alternative, question_id) ".
" VALUES ('".$alt."', ".$q_id."); ";
if (!db_query($sql))
$errors['err']='Unable to create alternatives';
}
}
}
}
}
<form action="test.php" method="POST" enctype="multipart/form-data"><br /><br /><br />
for($i=1; $i<=10; ++$i){
$i.") "?><input type="text" name="questions[]" value="" size="100"/><br />
<br /><p>Alternatives:</p><br />
for($j=1; $j<=4; ++$j){
<input type="text" name="alternatives[]" value="" /><br /> } }
<input type="submit" name="submit" value="Send"></input>
<input class="button" type="reset" value="Reset" />
</form>
if(设置($请求['submit'])和&$请求['submit']!=“”){
$questions=$_POST['questions'];
$Alternations=$_POST['Alternations'];
如果(isset($\u POST['questions'])和&$\u POST['questions']!='')
{
foreach($q形式的问题){
如果($q!=''){
$sql1=“插入问题(问题)”。
“值(‘“$q.”);”;
if(!db_query($sql1))
$errors['err']=“无法创建问题”;
$question_id[]=mysql_insert_id();
}
}
foreach($question\u id AS$q\u id){//我想这就是问题所在,但我不知道如何解决
foreach($alt形式的备选方案){
如果($alt!=''){
$sql=“插入备选方案(备选方案,问题编号)”。
“值(“$alt.”、“$q_id.”);”;
如果(!db_query($sql))
$errors['err']=“无法创建备选方案”;
}
}
}
}
}
对于($i=1;$i
备选方案:
for($j=1;$jforeach($q\u id为$q\u id)
迭代您的问题列表
在这个循环中,foreach($alt作为可选项)
迭代您的答案列表。因此,您将浏览整个答案列表,每个问题一次
相反,您需要将每个答案与它所适用的问题关联起来。最简单的方法可能是一次插入一个问题。有多种其他方法可以做到这一点,但如果不看到您提交这些问题所使用的界面,很难说什么可行。foreach($question\u id作为$q\u id)
迭代您的问题列表
在这个循环中,foreach($alt作为可选项)
迭代您的答案列表。因此,您将浏览整个答案列表,每个问题一次
相反,您需要将每个答案与它所适用的问题关联起来。最简单的方法可能是一次插入一个问题。有多种其他方法可以做到这一点,但如果没有看到您提交这些问题所使用的界面,很难说什么是有效的。为什么不将问题编号添加到问题列表中作为键的输入的名称:
<form action="test.php" method="POST" enctype="multipart/form-data"><br /><br /><br />
<?php
for($i=1; $i<=10; ++$i){?>
<input type="text" name="questions[<?php echo $i;?>]" value="" size="100"/><br />
<br /><p>Alternatives:</p><br />
<?php for($j=1; $j<=4; ++$j){?>
<input type="text" name="alternatives[<?php echo $i;?>][]" value="" /><br />
<?php } } ?>
<input type="submit" name="submit" value="Send"></input>
<input class="button" type="reset" value="Reset" />
</form>
为什么不将问题编号作为键添加到输入的名称中:
<form action="test.php" method="POST" enctype="multipart/form-data"><br /><br /><br />
<?php
for($i=1; $i<=10; ++$i){?>
<input type="text" name="questions[<?php echo $i;?>]" value="" size="100"/><br />
<br /><p>Alternatives:</p><br />
<?php for($j=1; $j<=4; ++$j){?>
<input type="text" name="alternatives[<?php echo $i;?>][]" value="" /><br />
<?php } } ?>
<input type="submit" name="submit" value="Send"></input>
<input class="button" type="reset" value="Reset" />
</form>
注意SQL注入…尝试。注意SQL注入…尝试。谢谢Octern,我按照您的建议做了,“一次一个问题”。很高兴它起到了作用!如果您认为这是一个有用的答案,您也可以将其向上投票(单击答案旁边的向上箭头)或将其标记为“已接受”答案(单击箭头下的复选标记)。这不是必需的,但它会让其他stackoverflow用户更有可能回答您提出的任何其他问题。我回答了,但现在我面临另一个问题,但与第一个问题类似,我已将其发送到网上,希望您也能在这个问题上给我一些提示。谢谢!谢谢Octern,我按照您的建议做了,“一次只问一个问题”。很高兴它起到了作用!如果您认为这是一个有用的答案,您也可以将其向上投票(单击答案旁边的向上箭头)或将其标记为“已接受”答案(单击箭头下的复选标记)。这不是必需的,但它会使其他stackoverflow用户更有可能回答您提出的任何其他问题。我回答了,但现在我面临另一个问题,但与第一个问题类似,我已将其发送到网上,希望您也能在这个问题上给我一些提示。谢谢!感谢Borgtex的帮助,对我来说,这种方式非常困难ult和我通过每次插入一个问题来完成。再次感谢你Borgtex的帮助,对我来说,这种方式非常困难,我通过每次插入一个问题来完成。再次感谢你