با سلام
دوستان فکر میکنم عنوان مطلب خودش گویای همه چیز باشه.
من میخوام آخرین مقدار Auto_increment رو از دیتابیس بگیرم و ازش استفاده کنم.میخواستم ببینم کدی هست که این کار رو کنم.
با سلام
دوستان فکر میکنم عنوان مطلب خودش گویای همه چیز باشه.
من میخوام آخرین مقدار Auto_increment رو از دیتابیس بگیرم و ازش استفاده کنم.میخواستم ببینم کدی هست که این کار رو کنم.
آخرین ویرایش به وسیله iman64 : سه شنبه 23 تیر 1388 در 08:32 صبح
سلام
باید از دستور ()LAST_INSERT_ID در MySQL استفاده کنید:
SELECT LAST_INSERT_ID() FROM table;
ممنون دوست عزیز
والله من از این کد سر در نیاوردم.
اگه میشه کد کاملش رو بزار که بشه یه جای صفحه ازش استفاده کرد.مثلاً کد select از یک جدول رو که میدونید اینطوریه و به نوعی کاملاً خروجیش معلومه.
$result = $db->sql_query("select * FROM table");
$row = $db->sql_fetchrow($result);
$id = intval($row['id']);
اگه میشه یه همچین خروجی ای داشته باشه
ممنون
$result = $db->sql_query("select LAST_INSERT_ID() AS auto_id FROM table");
$row = $db->sql_fetchrow($result);
$id = intval($row['auto_id']);
به طور ساده تر میتونید بر حسب id به صورت نزولی مرتب کنی بعد از طریق یک بار به کار بردن mysql_fetch_array به رکورد مورد نظر دسترسی داشته باشید...
$result=mysql_query("SELECT * FROM table_name ORDER BY id DESC");
$id=mysql_fetch_array($result);
سعید جان روش آخرین آیدی زیاد مطمئن نیست، چون هخونطور که می دونید ممکنه آخرین آیدی ها حذف شده باشند و آخرین auto با آخرین آیدی موجود اختلاف داشته باشه!
هرچند که ظاهرا خود تابع LAST_INSERT_ID باگ داره!
امیر جان دستت درد نکنه
من جای کلمه table اسم جدولی رو که مد نظرم بود گذاشتم ولی این کدی که شما دادید فقط یه مقدار صفر رو برمیگردونه.
در ضمن روش آخرین آیدی همونطور که امیرخان گفتند مطمئن نیست و ممکنه همخونی نداشته باشه.در ضمن اگه باگ داره خوب باید چی کار کرد.اگه میشه یه چک کنی ممنون میشم.
بهترین کار استفاده از تابع mysql_insert_id هست
از همکاری دوستان متشکرم.ولی اگه دوستان جواب رو کامل بدن بهتره تا هردم من یه پست اسپم ندم.دوستان من فقط میخوام بدونم آخرین آیدی ای که قرار ه ثبت بشه چنده همین.چون آخرین آیدی ای که ثبت میشه با آخرین آیدی موجود به علاوه 1 ممکنه برابر نشه(در اثر حذف یک رکورد).من میخوام بدونم که اون آیدی چنده.
ایمان جان، فروم محل همفکریه نه پرسش و پاسخ!
این رو تست کردم:
$infoSql = mysql_query("SHOW TABLE STATUS LIKE 'table'");
$info = mysql_fetch_assoc($infoSql);
echo $info['Auto_increment'];
اسم جدول حتما باید بین کوتیشن قرار بگیره.
دست امیر خان درد نکنه
من نمیدونم چی تو این اسم امیره که من تو دو تا فروم عضوم و جز خوبی از این دو نفر چیزی ندیدم.
آقا حالا ما یه چیزی رو نمیدونیم چطوری باید همفکری کنیم.خوب کسی همفکری میکنه که یه چیزی حالیش باشه.بخدا من دارم همینجوری تیکه تیکه پی اچ پی یاد میگیرم.ان شاءالله از همین فروم ما بتونیم اطلاعات برنامه نویسیمون رو بالا ببریم حتی اگه شده به اندازه یه اپسیلون نسبت به شما اساتید.
دستت درد نکنه.کد عالی ای بود.جواب داد.
امیدوارم با کد خوب امیر مشکل حل شده باشه!
ایمان جان منظورم از همفکری اینه که هرکسی هرچی به ذهنش میاد یا تجربیاتش رو بیاد مطرح کنه.
هیچ کس علامه نیست. من یه راهی بلدم حالا درست یا غلط، شما یه راهی، بقیه هم همینطور.
حالا مطرح کردن طرز فکرها باعث معرفی راههای مختلف میشه.
مثلا تو همین تاپیک، چهار تا روش برای گرفتن auto_increment مطرح شد که هر کدوم میتونه یه جا کاربرد داشته باشه.
من به این همفکری ها معتقدم وگرنه کد آماده هیچی با آدم یاد نمیده.
موفق باشید./