以下のコードは正常に動作しますが、これを処理する別の方法があるかどうかは疑問です。基本的に、エントリを削除した後、ソート順を更新する必要があります。How to - 削除後のソート順のソート
$sql = 'DELETE FROM `ee_blog_category` WHERE id = '.$category_id;
mysqli_query($con,$sql);
if(mysqli_error($con)){
echo mysqli_error($con);
}
// update cat sort
$i = 1;
$sql = 'SELECT * FROM `ee_blog_category` ORDER BY `sort`';
$result = mysqli_query($con,$sql);
while ($row = mysqli_fetch_array($result)){
$sql1 = 'UPDATE `ee_blog_category` SET `sort` = '.$i.' WHERE `id` = '.$row['id'];
mysqli_query($con,$sql1);
$i++;
}
'set sort = sort-1'のような更新で計算できます。この方法で、ループする必要はありません。 – Jeff
'sort'カラムの値を更新する前に、それらの値をどのように決定しましたか?あなたのアップデートは単に 'id'値と同じものに設定します。あなたはちょうど 'idによってSORTすることができ、それを1日と呼ぶことができます。 'id'の値が連続していないことを誰も知らないでしょう。あなたがそれらを教えない限り、' DELETE'dされているものもあります。 –
私は別々のソート列を持つことを好みます。挿入時には合計行数がカウントされ+1が加算され、最新のエントリがソートの最後になります。 – drooh