PDA

View Full Version : حرفه ای: اضافه کردن یک عدد به داده های موجود در بانک



reza10wert
پنج شنبه 25 خرداد 1391, 22:59 عصر
من یک جدول دارم مثل جدول زیر

اسم-موجودی

رضا-12
علی-15
.
.

حالا میخوام در قسمت مدیریت بیام و کل اعضای موجود در بانک رو از بانک بخونم و برای ویراش آماده کنم

در قسمت مدیریت مثلا میزنم رضا 4 ، با مقدار قبلی جمع یا تفریق یا ضرب یا تفریق بشه و در بانک ذخیره بشه

امیدوارم خوب منظورم را رسانده باشم

لطفا کمکم کنید

MSN_Issue
جمعه 26 خرداد 1391, 00:34 صبح
ببینید این بدردتون میخوره :

update tbl set mojodi = mojodi+4 where name = "ali"

این کوئری موجودی علی رو +4 میکنه...

reza10wert
جمعه 26 خرداد 1391, 00:39 صبح
این خوبه
ولی من عرض کردم که گروهی میخوام اطلاعات وارد کنم
در این مورد باید چکار کنم ؟
مثل بگم رضا+4 و علی+8 و ... خیلی اطلاعات دارم

pejman_view
جمعه 26 خرداد 1391, 06:01 صبح
با سلام خدمت شما

اولاً این سوال پیش میاد که اولاً چندین عمل ریاضی مختلف با مقدارهای مختلف را چطوری همزمان انجام بدهیم:
خوب برای اینکار فرض را بر این گذاشتم که یک فرم به کاربر نمایش دهیم مانند فرم زیر:

نام | موجودی| مقدار مورد نظر خود را وارد کنید | نوع عمل ریاضی را انتخاب کنید
علی | 12 |5 | جمع
محمد| 6 |5 | تفریق

در این فرم ما نام کاربر و موجودی را نمایش می دهیم و در فیلدهایی از کاربر ورودی طلب می کنیم. کاربر هم وارد می کند و ثبت را می زند.
اگر مقادیر و نوع عمل ریاضی یکسان باشد کار آسان است و می توان از یک کوئری مانند زیر استفاده کرد اما آن هم به شرط ها و شروط ها که تمامی رکوردها با فرض بالا تغییر کند در غیر این صورت باید یه کوئری پایه نوشته و سپس در یک حلقه بگذارید.

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

با آرزوی موفقیت

reza10wert
جمعه 26 خرداد 1391, 08:47 صبح
نمونه کدم لطفا میذارید؟
بعد اینکه من مثلا 100 نفر دارم و میخوام جلوی تمام افراد یک عدد رو وارد کنم وعملیات ریاضی مد نظرم رو روش اعمال کنم
بر هر کدام باید یک کوئری بنویسم ؟
در کل باید چه کار کنم ؟

MSN_Issue
جمعه 26 خرداد 1391, 11:08 صبح
بله اگه تعداد زیادی مثل اونچیزی که قبلا گذاشتم دارید باید برای هر کدوم یک کوئری بنویسید!
که البته با یک حلقه تو PHP میتونید کارتون رو انجام بدید.

reza10wert
جمعه 26 خرداد 1391, 14:00 عصر
خوب نمونه کد میخوام
ممنون

reza10wert
دوشنبه 29 خرداد 1391, 13:56 عصر
کسی نیست کمک کنه؟

mostafa272
چهارشنبه 31 خرداد 1391, 13:35 عصر
به نظرم یه کاری شبیه به این باید انجام بدی. تعداد رکوردهایی که می خواهیم تغییرشون بدیم رو در متغیر $count می ریزیم و نوع تغییری که واسه هر کدوم می خواهیم اجرا بشه رو در آرایه $type. همین طور می تونی مقادیر شرط کوئری و مقدار مورد نظرت برای تغییر رو هر کدومشون رو جدا تو آرایه هایی جدا قرار بدی(مثه $type)



<?php
$conn1 = mysql_connect('localhost','root','');
mysql_select_db('yourdb',$conn1);
for ($i=0;$i<$count;i++)
{
if($type[$i]=="sum")
{
$sql1="UPDATE tble SET mojoudi=mojoudi+4 WHERE name='ali'";
$result1 = mysql_query($sql1,$conn1);
}
else if($type[$i]=="subtract")
{
$sql1="UPDATE tble SET mojoudi=mojoudi-4 WHERE name='ali'";
$result1 = mysql_query($sql1,$conn1);
}
else if($type[$i]=="product")
{
$sql1="UPDATE tble SET mojoudi=mojoudi*4 WHERE name='ali'";
$result1 = mysql_query($sql1,$conn1);
}
}

?>

reza10wert
چهارشنبه 31 خرداد 1391, 13:42 عصر
دوست عزیز نگاه
سایت من اینه

هر کس یه امتیاز داره .

حالا هر بار میخوام کل افراد عضو سایتم رو یکجا در مدیریت فرخوانی کنم و جلوی هر کدوم هم یک text برای وارد کردن امتیازش .

حالا اگر این امیتاز را بنویسم +4 امتیاز قبلی رو +4 کنه اگر نوشتم -5 امیتاز قبلی رو -5 کنه و ... . حالا این فقط برای یک نفر هست .

میخوام برای همه افراد جلوی اسمشون امتیاز جدیدشون رو بنویسم و وقتی دکمه ارسال فرم رو زدم همه با هم ویرایش بشن .

mostafa272
چهارشنبه 31 خرداد 1391, 15:15 عصر
خب من اینی که گفتم مثال بود. میتونی تو آرایه $type مقادیر اولین کاراکتری که در تکست باکس می ریزی رو فقط قرار بدید و بقیه رو(امتیازها) در یه آرایه دیگه قرار بده!(مثلا با Str_split) در این حلقه هم اون رو با "+" و"-" و "*" چک کنی یا با استفاده از توابع دیگر کار بارشته چک کنی که اگه "+" بود (به جای sum مثال قبلی) اضافه کنه یا بقیه موارد...

خلاصه:منظورم اینه که هر تکست باکسی رو که داری کاراکترهاش رو به دو بخش تقسیم کن:بخش اول اولین کاراکتر که برای تعیین نوع تغییر هست.
بخش دوم: امتیاز اون شخص.

حالا تمام کاراکترهای بخش اول رو در یه آرایه قرار بده(مثلا $type)
و تمام امتیازات اشخاص رو در یک آرایه دیگه.

مثلا داری:+12،-14،-7 باید این طور در آرایه هات قرار بدی که بشه:


$type[0]="+";
$point[0]=12;
$type[1]="-";
$point[1]=14;
$type[2]="-";
$point[2]=7;