下午好StackOverflowers,
我有一个非常简单的问题。 (我猜:))
每次我提交一个包含许多其他输入字段的表单时,它都会获取输入字段的最后一个值。
我一个月前遇到过类似的问题,但我以某种方式解决了这个问题......我只是无法解决这个问题。
您可以在下面看到我的HTML表单。 (没有标记,我知道)
<?php
include_once("database.php");
$sql = "SELECT * FROM statements";
$stmt = $db->prepare($sql);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($rows as $row){
echo "<b>";
echo $row['question'];
echo "<br/></b>";
$sqlA = "SELECT * FROM question_answer WHERE question_id =" . $row['id'];
$stmtA = $db->prepare($sqlA);
$stmtA->execute();
$rowsA = $stmtA->fetchAll(PDO::FETCH_ASSOC);
echo "<form id='modify' name='modify' action='modify.php' method='POST'>
<div id='answers'>";
foreach($rowsA as $rowa){
if($rowa['correct_answer'] == 1){
$rowAnswer = $rowa['answer'];
$rowId = $rowa['question_id'];
echo "<input type='text' checked value='" . $rowAnswer . "' name='" . $rowId."' style='background:lightgreen;'><br/>";
echo "</div>";
}
else{
$rowFalseId = $rowa['question_id'];
echo "<input type='text' value='" . $rowAnswer . "' name='" . $rowFalseId."'><br/>";
}
}
}
?>
<input type='submit' name='modify_answers' value="Modify Answers">
</form>
您可以在下面看到我的更新查询;
<?php
include_once("database.php");
// foreach($_POST as $val){
// print_r($val);
// }
$sql = "SELECT * FROM statements";
$stmt = $db->prepare($sql);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($rows as $row){
$sqlA = "SELECT * FROM question_answer where question_id =" . $row['id'];
$stmtA = $db->prepare($sqlA);
$stmtA->execute();
$rowsA = $stmtA->fetchAll(PDO::FETCH_ASSOC);
foreach($rowsA as $rowa){
foreach($_POST as $id => $value){
$update = "UPDATE question_answer SET answer = '".$value."' WHERE question_id ='". $id."'";
$stmt = $db->prepare($update);
$stmt->execute();
}
}
}
?>
Everytime它提交到modify.php文件,它会更新输入字段的最后一个值。
例如,如果我有16个输入字段,则它取输入字段的第4,第8,第12和第16个值。
所以问题是输入字段的名称,但也可能是modify.php ..
任何帮助都是有效的!我遇到这个简单的问题时遇到了困难:(
感谢Advance Guys !!
答案 0 :(得分:2)
我想我可以看到这里发生了什么。你需要移动这一行......
$rowAnswer = $rowa['answer'];
...所以它不属于你的if
声明(将它们移到它上面)。目前,只有$rowa['correct_answer'] == 1
评估为true
才会分配。
答案 1 :(得分:1)
这是固定的家伙!谢谢你的帮助.. @ d0ug7a5感谢您的回答,这对我有所帮助。但我的主要问题是我得到了Question_id而不是id。谢谢!