(۱۲ شهریور ۱۳۹۴ ۰۱:۱۴ ق.ظ)amard نوشته شده توسط: (06 شهریور ۱۳۹۴ ۰۳:۰۹ ب.ظ)One Minute نوشته شده توسط: خب این کار رو میتونی داخل شرط های کوئری ات بنویسی
مثلا اینجا یک کوئری میزنیم سن کاربر رو میخونیم ضربدر ۲ میکنیم میریم توی یک متغیر، بعد توی خط بعد اون متغیر رو وارد دیتابیس میکنیم :
result = SELECT user_age * 2 FROM users WHERE conditions
INSERT INTO users (user_new_age) VALUES (result)
یا اینکه میتونی این مقدار هارو از دیتابیس بخونی، توی کدهای پردازشیت عملیات رو انجام بدی و بعد درج کنی در دیتابیس
البته کدی که در بالا نوشتم برای PHP هستش، کاری نداره به سینتکس زبانی که میخوای تبدیلش کن.
به نظرم حاصل دستور SELECT یه ستون هستش که توی متغیر result ذخیره شده . پس داخل متغیر result یه ستون داریم . دستور INSERT برای اضافه کردن یک یا چند رکورد به یه جدول استفاده میشه بنابر این نمیشه متغیر result که حاوی یک ستون هست رو با دستور INSERT استفاده کرد بنظرم اینجا باید از UPDATE استفاده کرد :
UPDATE users SET user_age=result
که این دستور ستون user_age رو با مقادیر result آپدیت میکنه .
البته من php کار نکردم وشاید دستور INSERT در این زبان نحوه عملکردش فرق بکنه ولی علی الاصول طبق قواعد SQL باید طبق توضیحی که عرض کردم باشه.
با سپاس از توضیحی که دادید،
مطلبی که عرض کردید از نظر تئوری کاملا درست هست و طبق مباحث پایگاه داده به این صورت باید عمل کرد،
اما توجه داشته باشید که توی زبان های اسکریپتی مثل PHP ، نتیجه ی دستور SELECT که result هست یک متغیر نیست بلکه یک آرایه هست و با یک حلقه foreach میشه به راحتی روی عناصرش چرخید و ضرب و تقسیم یا هرکاری که دوستمون میخوام رو انجام داد و در نهایت از طریق وارد دیتابیس کرد،
البته شما درست میفرمایید بجای INSERT باید در انتها از دستور UPDATE استفاده کرد.
البته بهتره در انتهای دستور UPDATE از شرط WHERE استفاده کرد تا داده ها در مکان مناسب قرار بگیرند.
ممنونم