有人可以帮我获取此代码,以便在删除一行后将主键 $idfilm 重新编号为连续顺序吗?当我删除表中设置为 auto_increment 的主键的所有数据时,它从它离开的最后一个数字开始。
我猜这是正常的,因为它是唯一的密钥。如果是这样,那么我如何让我的 $_POST['checkbox'] 等于相同的唯一行号,以便我可以“DELETE mytable where $_POST['checkbox'] = the unique key row?
请记住,$id_actor 是另一个表的外键。
$row_number = 1;
while ($row = mysql_fetch_array($result)) {
$id_actor= $row["id_actor"];
$idfilm= $row["idfilm"];
$filmTitle= $row["filmTitle"];
$filmRole= $row["filmRole"];
$filmDirector= $row["filmDirector"];
echo"<tr>";
echo '<td><input name="checkbox[]" value="$idfilm'.$row_number.'" type="checkbox"
id="checkbox'.$row_number.'" /></td>';
for ($i=0; $i<5; $i++) {
echo"<td> $row[$i]</td>";
}
echo"</tr>";
$row_number++;
}
echo"</table>";
..................................................... .....................................
这是我的删除代码,它不会删除任何内容,因为 $del_id 与 $idfilm 不匹配。
if(isset($_POST['delete'])) {
if(array_key_exists('checkbox',$_POST)) {
foreach ($_POST['checkbox'] as $del_id) {
echo $del_id;
$sql = "DELETE FROM filmInfo WHERE 'idfilm' = '$del_id' "; //This line needs work
$result = mysql_query($sql) or die(mysql_error());
if(mysql_affected_rows($result)) echo 'Selected data rows Deleted';
}
}
}