我有一个开关,我用它来更新一些数据(问题)。问题是,如果我编辑一个问题,点击提交,什么都没有发生。然而,当我编辑所有的问题一样,他们被更新到我的数据库。无论如何,每个问题更新一次。因此,如果我编辑一个数据并单击提交,它就会升级,而不必升级其他所有数据。
case 'Addquiz':
$sql = "SELECT questiontext,type FROM questioninfo ORDER BY type DESC ";
$result = mysqli_query($con,$sql);
$selectedtable = "<form method='post' action=''>'n";
$selectedtable .= "<table class='sortable'>'n<tr><th>Question</th><th>Type</th></tr>'n";
while($row = mysqli_fetch_array($result)) {
$selectedtable .= "<tr><td><input type='text' name='QuestionText' value='".$row['questiontext']."'></td><td>$row[1]</td></tr>'n";
}
$selectedtable .= "</table>'n";
$selectedtable .= "<input type='submit' name='submit' value='Update' style='width:80px; height:30px; text-align:center; padding:0px;'>'n";
$selectedtable .= "<input type='submit' name='addquestion' value='Add Question' style='width:140px; height:30px; text-align:center; padding:0px;'>'n";
$selectedtable .= "</form>'n";
if(isset($_POST['submit'])) {
$questiontext = $_POST['QuestionText'];
$sql1="SELECT questiontext FROM questioninfo";
if($result=mysqli_query($con,$sql1)) {
$rowcount=mysqli_num_rows($result);
}
if($rowcount==0) {
$sql="INSERT INTO questioninfo (questiontext) VALUES('$questiontext')";
$result = mysql_query($sql);
} else {
$sql2 = "UPDATE questioninfo SET questiontext = '$questiontext'";
$result2 = mysql_query($sql2);
}
}
break;
使用查询结果中的rowID,在循环中更改input
标记,使其具有动态名称。
<input type='text' name='QuestionText[$row[id]]' value='".$row['questiontext']."'>
.....................................^ ^
然后将提交一个由QuestionText元素组成的"数组",每个元素的行ID作为"键",输入的文本作为"值"
然后,在提交表单之后,循环遍历$_POST['QuestionText']并依次处理每个表单,如下所示:
foreach($_POST['QuestionText'] as $key => $value){
// update row $key with $value
}
我看不出你怎么会需要insert
查询,因为它们最初都来自数据库。