PDA

View Full Version : دریافت کد شناسه یک رکورد -id- پس از در دیتابیس



asirha
یک شنبه 27 آبان 1386, 08:08 صبح
سلام

من میخوام بلا فاصله بعد از درج یک رکورد در دیتا بیس id رکوردی که درج شده رو گرفته و به کاربر نشون بدم تا توسط همون id کاربر بتونه مثلا درخواستی که صادر کرده رو پیگیری کنه

oxygenws
یک شنبه 27 آبان 1386, 10:46 صبح
به نظرت این سوالت نمی تونه به مثلا PHP ربط داشته باشه؟!!!

asirha
یک شنبه 27 آبان 1386, 13:31 عصر
شاید به php هم ربط داشته باشه

به هر حال ممکنه کسی بخواد همین کار رو با asp انجام بده و کسی از دوستان بتونه همین جا بهش جواب بده

مهم اینه که ما این کار رو میخوایم با mysql انجام بدیم

حالا اگه یکی از دوستان بتونه جواب ما رو با php بده ممنون میشم

asirha
یک شنبه 27 آبان 1386, 18:19 عصر
mysql_insert_id
(PHP 3, PHP 4 )

mysql_insert_id -- Get the ID generated from the previous INSERT operation
Description
int mysql_insert_id ( [resource link_identifier])


mysql_insert_id() returns the ID generated for an AUTO_INCREMENT column by the previous INSERT query using the given link_identifier. If link_identifier isn't specified, the last opened link is assumed.

mysql_insert_id() returns 0 if the previous query does not generate an AUTO_INCREMENT value. If you need to save the value for later, be sure to call mysql_insert_id() immediately after the query that generates the value.

Note: The value of the MySQL SQL function LAST_INSERT_ID() always contains the most recently generated AUTO_INCREMENT value, and is not reset between queries.

Example 1. mysql_insert_id() example


<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>

tabib_m
یک شنبه 27 آبان 1386, 18:25 عصر
$query=mysql_query("insert into `tableName` values ('a','b',...)");

$theID=mysql_insert_id();

echo $theID;

Mohammad_Has
شنبه 03 آذر 1386, 22:38 عصر
asp.net
sql=select * from mdb where name="d" d

scorpion_man
دوشنبه 19 آذر 1386, 01:36 صبح
سلام

من میخوام بلا فاصله بعد از درج یک رکورد در دیتا بیس id رکوردی که درج شده رو گرفته و به کاربر نشون بدم تا توسط همون id کاربر بتونه مثلا درخواستی که صادر کرده رو پیگیری کنه
من از PHP خبر ندارم ولی با ado.net و دستورات insert فقط هنگام انجام شدن دستور insert مقدار برگشتی تعداد سطرهای اعمال شده است من این کارو این طوری انجام میدم
value=select MAX(ID) FROM table_name
insert table_name (ID,...) VALUES (value+1,...)a
این a آخری یرای درست شدن نحوه نمایش هست جدی نگیر
من این کارو انجام میدم البته تو این شکل نمیشه از auto_increment استفاده کرد ولی تا حالا دنبال راه دیگه ای نبودم اگه فهمیدی به منم بگو ممنون میشم
موفق باشی

nader.golab
دوشنبه 27 خرداد 1392, 10:44 صبح
سلام منم همچین مشکلی دارم با CSharp کار می کنم.
می خوام وقتی رکوردی درج شد مقدار یک فیلدی رو برگردونه مثل ID رو.چی کار باید کرد؟

pcseven
دوشنبه 27 خرداد 1392, 10:51 صبح
سلام

من میخوام بلا فاصله بعد از درج یک رکورد در دیتا بیس id رکوردی که درج شده رو گرفته و به کاربر نشون بدم تا توسط همون id کاربر بتونه مثلا درخواستی که صادر کرده رو پیگیری کنه

پس از درج رکورد، پرس و جوی زیر را اجرا کرده و نتیجه را دریافت کنید:


SELECT @@IDENTITY FROM MyTable;

nader.golab
دوشنبه 27 خرداد 1392, 11:01 صبح
ممنون اجرا کردم درست جواب داد.ئلی به تعداد رکوردای ثبت شده.رکورد میاره.
105683

nader.golab
دوشنبه 27 خرداد 1392, 11:27 صبح
خوب پس مجبور می شیم کد رو اینطوری تغییر بدیم تا مشکل برطرف بشه.

SELECT DISTINCT @@IDENTITY FROM MyTable

hamid_hr
دوشنبه 27 خرداد 1392, 14:41 عصر
insert into table (name) output inserted.id values ('hamid')


ايدي رو برميگردونه

majidrezaei2007
سه شنبه 28 خرداد 1392, 14:31 عصر
اگر از پروسیجر استفاده می کنی میتونی از تابع LAST_INSERT_ID() استفاده کنی

rahmat1359
سه شنبه 01 مرداد 1392, 20:41 عصر
اگر از پروسیجر استفاده می کنی میتونی از تابع LAST_INSERT_ID() استفاده کنی


لطفا کد کاملشو بنویس.تورو خدا..............:بوس: