【发布时间】:2015-11-13 15:29:50
【问题描述】:
我正在尝试删除包含问题文本和类型的整行。在删除的情况下,该功能可以正常工作。但是,它总是删除添加的最后一行,而不是检查的行。有什么建议吗?
case 'Addquiz':
$sql = "SELECT id,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>Select</th><th>Question</th><th>Type</th></tr>\n";
while($row = mysqli_fetch_assoc($result)) {
$rowID = $row['id'];
$text = $row['questiontext'];
$type = $row['type'];
$selectedtable .= "<tr><td><input type='checkbox' name='delete' value='Delete' style='margin:20px;'></td><td><input type='text' name='QuestionText[$rowID]' value='$text' style=' width:600px; text-align:left;'></td><td><select name='Type[$rowID]' style='margin:10px; height:35px'><option selected='selected'></option><option value='$type'>Performace</option><option value='$type'>Loyalty</option></select></td></tr>\n";
}
$selectedtable .= "</table>\n";
$selectedtable .= "<input type='submit' name='addquestion' value='Add Question' style='width:140px; height:30px; text-align:center; padding:0px;'>\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='del' value='Delete' style='width:80px; height:30px; text-align:center; padding:0px;'>\n";
$selectedtable .= "</form>\n";
if(isset($_POST['submit']))
{
foreach($_POST['QuestionText'] as $rowID => $text)
{
$sql = "UPDATE questioninfo SET questiontext = '$text', type = '$type' WHERE id = '$rowID'";
mysqli_query($con,$sql);
}
}
if(isset($_POST['addquestion']))
{
$sql="INSERT INTO `questioninfo` (`ID`) VALUES (NULL)";
mysqli_query($con,$sql);
}
if(isset($_POST['del']))
{
$sql="DELETE FROM questioninfo WHERE id = '$rowID'";
mysqli_query($con,$sql);
}
break;
【问题讨论】:
-
$rowID 将始终获取最后一行 id,因为它是在 while 循环之后执行的。
-
@ravenanigam 关于如何获得所需结果的任何建议?
标签: php mysqli phpmyadmin