আপনি এই কলামটির প্রাথমিক কী স্বয়ংক্রিয় বর্ধন কার্যকারিতা মুছে ফেলতে পারবেন, তারপরে আপনি যখনই এই কলামটি আপডেট করবেন তখন হাতের আগে এমন কোনও ক্যোয়ারী চালান যা টেবিলের সমস্ত সারি গণনা করবে, তারপরে সেই লুপটি চালাবে যা সেই সারি গণনায় পুনরাবৃত্তি করে প্রতিটি মান সন্নিবেশ করে the সম্পর্কিত সারি, এবং অবশেষে সেই কলামটির মান সহ মোট সারি গণনা প্লাস এক হিসাবে একটি নতুন সারি সন্নিবেশ করানো একটি ক্যোয়ারী চালান। এটি নির্দ্বিধায় কাজ করবে এবং আপনি যা করছেন তা সম্পাদন করার চেষ্টা করছেন এমন ব্যক্তির সবচেয়ে নিখুঁত সমাধান। ফাংশনের জন্য আপনি যে কোডটি ব্যবহার করতে পারেন তার উদাহরণ এখানে রয়েছে:
$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')");
এখানে আমি একটি এসোসিয়েটিভ অ্যারে তৈরি করেছি যা আমি একটি নির্বাচিত প্রশ্নের মধ্যে কোয়েরির সাথে একটি র্যাঙ্ক কলামে যুক্ত করেছিলাম, যা প্রতিটি সারিকে 1 দিয়ে শুরু করে একটি র্যাঙ্কের মান দিয়েছিল then আমি তখন অ্যাসোসিয়েটিভ অ্যারের মাধ্যমে পুনরাবৃত্তি করি।
আরেকটি বিকল্প হ'ল সারি গণনা পাওয়া, একটি মৌলিক নির্বাচন জিজ্ঞাসা চালানো, সহযোগী অ্যারে পেতে এবং এটি একই পদ্ধতিতে পুনরাবৃত্তি করা তবে একটি যুক্ত ভেরিয়েবলের সাথে যা প্রতিটি পুনরাবৃত্তির মাধ্যমে আপডেট হয়। এটি কম নমনীয় তবে একই জিনিসটি সম্পাদন করবে।
$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')");