PDA

View Full Version : اجرای همزمان 2 دستور بانک و همسان سازی id در دو جدول



saeed7474
جمعه 09 خرداد 1393, 15:10 عصر
سلام
عصر جمعه تون بخیر

دوستان چطور میتونم 2 دستور بانک اطلاعاتی رو همزمان در php اجرا کنم ؟



// $up = "UPDATE SET cerdit = cerdit - $cer WHERE user=$me; UPDATE SET cerdit = cerdit + $cer WHERE user=$cm";

$up1 = "UPDATE SET cerdit = cerdit - $cer WHERE user=$me" ;
$up2 = "UPDATE SET cerdit = cerdit + $cer WHERE user=$cm" ;

mysqli_query($connection, $up1);

if (!mysqli_query($connection,$up2))
{
die('Error: ' . mysqli_error($connection));
}else{
echo "انتقال با موفقیت انجام شد ..";
}
mysqli_close($connection);


و میخوام یک کاربر در جدول member که ثبت میشه در جدول card هم ثبت و id ها یکسان باشند
(ای دی ها اتوماتیک مقدار میگیرند)
این چگونه ممکن است ؟

با تشکر

rezayeman
شنبه 10 خرداد 1393, 06:31 صبح
سلام
اینکه همزمان اجرا بشن امکان نداره ولی پشت سر هم اجرا بشن میشه
اگه میخوای id یکسان باشه یکی بزار اتوات باشه یه جدول دیگرو بصورت دستی مقدار بده. یعنی تو جدول اول که insert انجام دادی id اونو بگیر و همونو بزار برای جدول دومت

pezhvakco
یک شنبه 11 خرداد 1393, 09:25 صبح
سلام

انجام دستورات در نرم افزار sql به صورت صف (پشت سر هم) است .

کد های شما برای بروز رسانی (UpDate) است و نه اضاف کردن (Insert) و در این حالت ID جدیدی وجود ندارد .

اگر کدی برای Insert داشته باشید، می توانید :
1)با کمک Trigger ها اجرای دستوراتی برای انجام کار بر روی دیگر جدول ها
2)اگر با SP ها کار Insert رو انجام می دهید، می تونید با تابع

Select Scope_Identity()
آخرین ID رو بدست بیارین

=> به خواسته خودتون برسین

اگر یک ستون به صورت IS Identity تعریف شده باشه، می توان مقدار دستی بهش بدهیم،
روش =
http://www.nikamooz.com/%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86/sql-server-vs-net/sql-server-design/125-identity-%D9%88-%D9%85%D8%A8%D8%A7%D8%AD%D8%AB-%D9%85%D8%B1%D8%A8%D9%88%D8%B7-%D8%A8%D9%87-%D8%A2%D9%86-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%D9%88%D9%85-%D8%AF%D8%B1%D8%AC-%D9%85%D9%82%D8%AF%D8%A7%D8%B1-%D8%AF%D8%B1-%DB%8C%DA%A9-%D9%81%DB%8C%D9%84%D8%AF-identity.html

و یا برای کنترل این ستون میشه از Default Value کمک گرفت .