PDA

View Full Version : سوال: خواندن آخرین مقدار Autoincrement از دیتابیس



iman64
دوشنبه 22 تیر 1388, 11:17 صبح
با سلام
دوستان فکر میکنم عنوان مطلب خودش گویای همه چیز باشه.
من میخوام آخرین مقدار Auto_increment رو از دیتابیس بگیرم و ازش استفاده کنم.میخواستم ببینم کدی هست که این کار رو کنم.

امیـرحسین
دوشنبه 22 تیر 1388, 11:27 صبح
سلام

باید از دستور ()LAST_INSERT_ID در MySQL استفاده کنید:

SELECT LAST_INSERT_ID() FROM table;

MySQL :: How to Get the Unique ID for the Last Inserted Row (http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html)
MySQL :: LAST_INSERT_ID (http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id)

iman64
دوشنبه 22 تیر 1388, 12:41 عصر
ممنون دوست عزیز
والله من از این کد سر در نیاوردم.
اگه میشه کد کاملش رو بزار که بشه یه جای صفحه ازش استفاده کرد.مثلاً کد select از یک جدول رو که میدونید اینطوریه و به نوعی کاملاً خروجیش معلومه.

$result = $db->sql_query("select * FROM table");
$row = $db->sql_fetchrow($result);
$id = intval($row['id']);
اگه میشه یه همچین خروجی ای داشته باشه
ممنون

امیـرحسین
دوشنبه 22 تیر 1388, 16:09 عصر
$result = $db->sql_query("select LAST_INSERT_ID() AS auto_id FROM table");
$row = $db->sql_fetchrow($result);
$id = intval($row['auto_id']);

saeid99
دوشنبه 22 تیر 1388, 20:31 عصر
به طور ساده تر میتونید بر حسب id به صورت نزولی مرتب کنی بعد از طریق یک بار به کار بردن mysql_fetch_array به رکورد مورد نظر دسترسی داشته باشید...

$result=mysql_query("SELECT * FROM table_name ORDER BY id DESC");
$id=mysql_fetch_array($result);

امیـرحسین
دوشنبه 22 تیر 1388, 21:55 عصر
سعید جان روش آخرین آیدی زیاد مطمئن نیست، چون هخونطور که می دونید ممکنه آخرین آیدی ها حذف شده باشند و آخرین auto با آخرین آیدی موجود اختلاف داشته باشه!

هرچند که ظاهرا خود تابع LAST_INSERT_ID باگ داره!

iman64
سه شنبه 23 تیر 1388, 08:31 صبح
امیر جان دستت درد نکنه
من جای کلمه table اسم جدولی رو که مد نظرم بود گذاشتم ولی این کدی که شما دادید فقط یه مقدار صفر رو برمیگردونه.
در ضمن روش آخرین آیدی همونطور که امیرخان گفتند مطمئن نیست و ممکنه همخونی نداشته باشه.در ضمن اگه باگ داره خوب باید چی کار کرد.اگه میشه یه چک کنی ممنون میشم.

maysamscript
سه شنبه 23 تیر 1388, 09:25 صبح
بهترین کار استفاده از تابع mysql_insert_id هست

iman64
سه شنبه 23 تیر 1388, 10:46 صبح
از همکاری دوستان متشکرم.ولی اگه دوستان جواب رو کامل بدن بهتره تا هردم من یه پست اسپم ندم.دوستان من فقط میخوام بدونم آخرین آیدی ای که قرار ه ثبت بشه چنده همین.چون آخرین آیدی ای که ثبت میشه با آخرین آیدی موجود به علاوه 1 ممکنه برابر نشه(در اثر حذف یک رکورد).من میخوام بدونم که اون آیدی چنده.

امیـرحسین
سه شنبه 23 تیر 1388, 15:20 عصر
ایمان جان، فروم محل همفکریه نه پرسش و پاسخ!

این رو تست کردم:

$infoSql = mysql_query("SHOW TABLE STATUS LIKE 'table'");
$info = mysql_fetch_assoc($infoSql);
echo $info['Auto_increment'];
اسم جدول حتما باید بین کوتیشن قرار بگیره.

iman64
پنج شنبه 25 تیر 1388, 11:48 صبح
دست امیر خان درد نکنه
من نمیدونم چی تو این اسم امیره که من تو دو تا فروم عضوم و جز خوبی از این دو نفر چیزی ندیدم.
آقا حالا ما یه چیزی رو نمیدونیم چطوری باید همفکری کنیم.خوب کسی همفکری میکنه که یه چیزی حالیش باشه.بخدا من دارم همینجوری تیکه تیکه پی اچ پی یاد میگیرم.ان شاءالله از همین فروم ما بتونیم اطلاعات برنامه نویسیمون رو بالا ببریم حتی اگه شده به اندازه یه اپسیلون نسبت به شما اساتید.
دستت درد نکنه.کد عالی ای بود.جواب داد.

mohsenw700
پنج شنبه 25 تیر 1388, 12:06 عصر
امیدوارم با کد خوب امیر مشکل حل شده باشه!

امیـرحسین
پنج شنبه 25 تیر 1388, 14:40 عصر
دست امیر خان درد نکنه
آقا حالا ما یه چیزی رو نمیدونیم چطوری باید همفکری کنیم.خوب کسی همفکری میکنه که یه چیزی حالیش باشه.بخدا من دارم همینجوری تیکه تیکه پی اچ پی یاد میگیرم.ان شاءالله از همین فروم ما بتونیم اطلاعات برنامه نویسیمون رو بالا ببریم حتی اگه شده به اندازه یه اپسیلون نسبت به شما اساتید.

ایمان جان منظورم از همفکری اینه که هرکسی هرچی به ذهنش میاد یا تجربیاتش رو بیاد مطرح کنه.
هیچ کس علامه نیست. من یه راهی بلدم حالا درست یا غلط، شما یه راهی، بقیه هم همینطور.
حالا مطرح کردن طرز فکرها باعث معرفی راههای مختلف میشه.
مثلا تو همین تاپیک، چهار تا روش برای گرفتن auto_increment مطرح شد که هر کدوم میتونه یه جا کاربرد داشته باشه.
من به این همفکری ها معتقدم وگرنه کد آماده هیچی با آدم یاد نمیده.

موفق باشید./