2017-07-26 105 views
0

您好,我需要您的幫助來解決我的問題 我需要在刪除數據後更新列no。列no將執行功能no - 1。我已經編寫了代碼並且工作正常,但爲什麼只是將數據減少到數字之下,您可以查看我的照片。 如何在刪除表中的數據後更新特定列

這張圖片之前就刪除 enter image description here

這張圖片刪除後做了。

我需要刪除並更新no這樣的列。 1,2,3以前做刪除。然後我刪除後使用no = 2。它僅在no列中爲 1,2。

,這爲我做的代碼刪除數據

<?php 
include("../../Connections/koneksi.php"); 

$no= $_POST['no']; 

// Attempt insert query execution 
$sql = "DELETE FROM temp2 WHERE no='$no'"; 

if(mysqli_query($db, $sql)){ 
    $sql1 = "UPDATE temp2 SET no=no - 1 "; 
    mysqli_query($db, $sql1); 

} else{ 
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($db); 
} 

// Close connection 
mysqli_close($db); 
?> 

<?php 
include("../../Connections/koneksi.php"); 

$no= $_POST['no']; 

// Attempt insert query execution 
$sql = "alter table temp2 auto_increment = 1"; 

if(mysqli_query($db, $sql)){ 
    echo "Records were deleted successfully."; 

} else{ 
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($db); 
} 

// Close connection 
mysqli_close($db); 
?> 
+0

什麼是第二個腳本? – RiggsFolly

+0

我在那裏使用自動增量,我在'no'中使用那個自動編號。第二個代碼重置自動增量到最近的最後一個輸入'no' –

+0

您是否使用InnoDB引擎?然後,您無法將ID重置爲已使用的最高值以下。 – dev0

回答

0

試試這個:

$sql1 = "UPDATE temp2 SET no=no - 1 WHERE no > ". $no; 
mysqli_query($db, $sql1); 

所以,你只能減少其更高,那麼你刪除一個的ID。

+0

恩這就是我需要.. thx爲@ dev0。 btw。我嘗試了不同的爲什麼不喜歡你的代碼。但是像這樣。該功能沒有運行? '$ sql1 =「update temp2 set no = no -1 limit 0」;'我嘗試使用那個函數,但是它不能限制它。你可以爲我解釋它,只是爲了獲得更多的經驗 –

+0

它不能工作,因爲它不是有效的SQL。 LIMIT子句用於指定要在SELECT語句中返回的記錄數。 – dev0

+0

哦,LIMIT子句必須和row_count這樣的東西一起使用吧? thx爲您的答案,給我更多的經驗 –

相關問題