مشکل با Auto incriment داخل My Sql

amin100amin

Member
سلام
دوستان من با این مشکل دارم
الان سی ام اس من از شماره 517 شروع میکنه
درحالی که شماره های قبلش هیچ شماره ای نیست نمیزاره که من کمتر از 517 بهش شماره بدم. باید چکار کنم ؟
(این کارو از داخل پی اچ پی مای ادمین دارم انجام میدم بخش Operation مربوط به تیبل):rose:
 

Masoud1365

مدیر انجمن
شاید قبلا یه سری اطلاعات اضافه کردی و اان که پاک کردی میخوایی از 1 شروع کنه که نمیکنه ! :green:
تیبلت رو انتخاب کن بعدش از operations رو بزن اونجا میتونی تغیرش بدی ! ( توی phpmyadmin )
 

ziXet

مدیر انجمن PHP/MYSQL
فیلد رو primary key تعریف کردی؟!
اگه چیزی توش نداره جدول رو empty کن درست میشه
 

MMSHFE

Active Member
با سلام، دوست عزيز نيازي به اين كار نيست. كافيه توي همون قسمت Operations در قسمتي كه نوشته Auto Increment عدد 0 رو وارد كنيد و دكمه Go رو بزنيد. خودش آخرين شماره رو پيدا ميكنه و از شماره بعد از اون شروع ميكنه. مثلاً اگه جدول شما خالي باشه، اولين شماره ميشه 1 و درست ميشه و اگه آخرين ركورد شما 100 باشه، از 101 شروع ميكنه.
موفق باشيد.
 

amin100amin

Member
شاید قبلا یه سری اطلاعات اضافه کردی و اان که پاک کردی میخوایی از 1 شروع کنه که نمیکنه ! :green:
تیبلت رو انتخاب کن بعدش از operations رو بزن اونجا میتونی تغیرش بدی ! ( توی phpmyadmin )

سلام و تشکر از پاسخ
قبلا اطلاعات وارد شده
اما همه اطلاعات پاک شده
یعنی خود سی ام اس از شماره 56 شروع کرده
من میخوام یکسری مطلب قدیمی اضاف کنم که بیاد قبل از مطالب جدید فعلی
یعنی هیچ راهی نیست ؟:-?
 

amin100amin

Member
فیلد رو primary key تعریف کردی؟!
اگه چیزی توش نداره جدول رو empty کن درست میشه

سلام اگر empty کنم مطالب فعلی خودم هم پاک میشه .بله پرایمری هست این فیلد آی دی مطلب هست که از شماره 56 شروع شده و تا الان به 518 رسیده
 

amin100amin

Member
با سلام، دوست عزيز نيازي به اين كار نيست. كافيه توي همون قسمت Operations در قسمتي كه نوشته Auto Increment عدد 0 رو وارد كنيد و دكمه Go رو بزنيد. خودش آخرين شماره رو پيدا ميكنه و از شماره بعد از اون شروع ميكنه. مثلاً اگه جدول شما خالي باشه، اولين شماره ميشه 1 و درست ميشه و اگه آخرين ركورد شما 100 باشه، از 101 شروع ميكنه.
موفق باشيد.
سلام و متشکر از پاسخ شما. مطالب از شماره 56 شروع کرده و به 518 رسیده انگار شماره های 0 تا 55 وجود نداره من میخوام قبل 56 اطلاعات وارد کنم اما نمیشه و مشکل من همینه . نه اینه بخوام از 518 به بعد وارد کنم. :rose:
 

amin100amin

Member
من میخوام اشاره گر اضافه شدن مطلب جدید بیاد روی شماره 1 و از شماره 1 شروع کنم به اضافه کردن مطلب جدید از طریق سی ام اس. چی رو میتونم ادیت کنم؟
 

Masoud1365

مدیر انجمن
اگر بخوایی به صورت خودکار این کارو بکنه باید :
تیبلت رو انتخاب کن بعدش از operations رو بزن اونجا میتونی تغیرش بدی ! ( توی phpmyadmin )
اما بعد از 56 به مشکل میخوره باید وقتی رسیدی به 56 دوباره بری توی همون قسمت و روی مثلا 518 تعریف کنی یا این که زمانی که اطلاعات رو وارد پایگاه داده میکنی به جای این که id رو null بدی مقدار دهیش بکنی !
 

amin100amin

Member
مشکل من هم همینه که نمیزاره مقدارش رو از 517 به 1 تغییر بدم. وقتی Go رو میزنم باز همون مقدار 517 باقی میمونه
 

MMSHFE

Active Member
با سلام، علت اين مسئله اينه كه آخرين مقدار موجود بعلاوه يك رو هميشه بعنوان AUTO INCREMENT درنظر گرفته ميشه. شما دو راه دارين:
1- اجراي Query زير:
کد:
UPDATE `table_name` SET `id` = `id` - 56
و به جاي table_name نام جدولتون رو بگذارين كه باعث ميشه همه شماره ها 56 واحد كم بشن و درنتيجه از 1 شروع بشن و بعد، AUTO INCREMENT رو از قسمت operations تنظيم كنيد.
2- جدول رو در قسمت operations تغيير نام بدين و يك جدول ديگه با همين ساختار و با نام قبلي بسازين و با كمك PHP تعداد 56 ركورد كه ميخواين رو درج كنيد و بعد، تمام ركوردهاي جدول قبلي رو يكي يكي با كمك while خونده و در اين جدول درج كنيد. مثلاً فرض كنيد فيلدهاي id و name و value رو دارين و اسم جدول اصلي، new_table و اسم جدول قبلي كه تغيير نامش دادين temp_table هست:
PHP:
//connection codes here
$result = mysql_query('SELECT * FROM `temp_table` ORDER BY `id`');
while($row = mysql_fetch_assoc($result))
{
    mysql_query("INSERT INTO `new_table` (`name`,`value`) VALUES ('{$row['name']}','{$row['value']}.') LIMIT 1");
}
همونطور كه ميبينيد، موقع درج در جدول جديد، همه فيلدهاي تمامي ركوردهاي جدول قبلي به جز فيلد id كه كليد اصلي هست و بصورت AUTO INCREMENT تنظيم شده، در دستور INSERT قرار ميگيرن. اينطوري خودش id رو پيدا و درج ميكنه.
اميدوارم مشكلتون برطرف بشه.
موفق باشيد.
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا