Bunu sütunun birincil anahtar otomatik artış işlevselliğini kaldırmak olabilir, daha sonra bu sütun tablodaki tüm satırları sayacaktır elden önce bir sorgu çalıştırdığınızda güncelleme her zaman, daha sonra bir döngü çalıştırmak her değer ekleyerek bu satır sayısı dolaşır Sonunda kendi satır ve bu sütun, toplam satır sayısı artı biri olma değeri ile yeni bir satır ekleyerek bir sorguyu çalıştırın. Bu kusursuz çalışır ve size ne gerçekleştirmek için çalışan biri için en kesin çözüm olacaktır. Burada fonksiyon için kullanabilirsiniz kod bir örnektir:
$table_row_count = mysql_result(mysql_query("SELECT COUNT(`field_1`) FROM `table`"), 0);
$viewsrowsdata = mysql_query("
SELECT `rank`, `field1`, `field2`, `field3`, `field4`
FROM (SELECT (@rank:=@rank+1) as `rank`, `field1`, `field2`, `field3`, `field4`
FROM (SELECT * FROM `views`) a
CROSS JOIN (SELECT @rank:=0) b
ORDER BY rank ASC) c
");
while ($row = mysql_fetch_assoc($viewsrowsdata)) {
$data[] = $row;
}
foreach ($data as $row) {
$new_field_1 = (int)$row['rank'];
$old_field_1 = (int)$row['field1'];
mysql_query("UPDATE `table` SET `field_1` = $new_field_1 WHERE `field_1` = $old_field_1");
}
mysql_query("INSERT INTO `table` (`field1`, `field2`, `field3`, `field4`) VALUES ('$table_row_count' + 1, '$field_2_value', 'field_3_value', 'field_4_value')");
İşte ben her satır 1 ile başlayan bir rütbe değer verdi bir seçme sorgusu, içinde sorgu ile bir rütbe sütun üzerinde ekli olan bir ilişkisel dizi oluşturduk. Daha sonra ilişkisel dizi yineledi.
Başka bir seçenek, satır sayısı almak temel bir seçme sorgusu çalıştırmak, ilişkisel dizi almak ve aynı yoldan ama her yineleme aracılığıyla güncelleştiren bir katma değişkeni ile yineleme olurdu. Bu az esnek ama aynı şeyi başarmak olacaktır.
$table_row_count = mysql_result(mysql_query("SELECT COUNT(`field_1`) FROM `table`"), 0);
$viewsrowsdata = mysql_query("SELECT * FROM `table`");
$updated_key = 0;
while ($row = mysql_fetch_assoc($viewsrowsdata)) {
$data[] = $row;
}
foreach ($data as $row) {
$updated_key = $updated_key + 1;
mysql_query("UPDATE `table` SET `field_1` = '$updated_key' WHERE `field_1` = '$row['field_1']'");
}
mysql_query("INSERT INTO `table` (`field1`, `field2`, `field3`, `field4`) VALUES ('$table_row_count' + 1, '$field_2_value', 'field_3_value', 'field_4_value')");