如果我运行这样的多个查询,删除表answer_det中的行并询问我在哪里指定pID和qID:
$deldil = "DELETE FROM answer_det WHERE pid='" . $_SESSION['pid'] . "' AND qid ='$qid';";
$deldil .= "DELETE FROM question WHERE pid='" . $_SESSION['pid'] . "' AND qid ='$qid';";
$rundeldilemma = mysqli_multi_query($mysqli,$deldil);
如果删除pID = 1且qID = 2的行,它将在问题表中显示如下:
如果我同时想要更新已删除的行下面的所有行,那么如果qID = 3的第二行获得qID = 2,qID = 4的那一行获得qID = 3,我该怎么办?依此类推。我只想在已删除的行下面的行上执行此操作,但仅限于具有我指定的相同pID的行。这应该发生在两个表格上,' answer_det'和'问题'。
答案 0 :(得分:1)
您可以使用以下查询更新行。这样做会搜索所有大于已删除行的qid的qid并将其减少1。
"UPDATE `question` SET `qid` = `qid` - 1 WHERE `pid` = '".$_SESSION['pid']."' AND `qid` > '$qid'"
答案 1 :(得分:-2)
主键不是数字。它只是绑定到某个数据库行的无意义的唯一序列。 你永远不应该碰它。