1

行の削除後に主キー $idfilm の番号を連続した順序に戻すために、このコードを取得するのを手伝ってもらえますか? auto_increment に設定された主キーのテーブル内のすべてのデータを削除すると、最後に中断した番号から開始されます。

一意のキーなので、これは正常だと思います。もしそうなら、どうすれば $_POST['checkbox'] を同じ一意の行番号に等しくして、「$_POST['checkbox'] = 一意のキー行である mytable を削除できますか?

$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';
}
}

}
4

3 に答える 3

0

あなたのクエリは次のようになります

$sql = "DELETE FROM filmInfo WHERE idfilm = '$del_id' ";

于 2013-09-17T05:20:48.980 に答える