PDA

View Full Version : سوال: چطوری برخی از فیلدها فقط آپدیت شوند؟



milyooner
پنج شنبه 06 بهمن 1390, 22:14 عصر
با سلام
بنده یه فرم نوشتم که اطلاعات درج میشه
فرم پسورد رو به صورت MD5 در دیتابیس ذخیره میکنه
همچنین قسمتی هم برای آوتار کاربر در نظر گرفته شده.
فرض کنید کاربر بخواد اطلاعات خودش رو ویرایش کنه اگر مقدار پسور و آوتار خالی باشه و به صورت خالی post بشه تو دیتابیس هم موقع آپدیت خالی میشه.
اگر شرط بذارم که زمانی که مثلا پسورد پر یا خالی بود یه کاری انجام بده کد طولانی میشه.

ممنون میشم راهنمایی بفرمایید که چطور فیلدهایی که تغییر نکرده رو آپدیت نکنم.

yones_safari
پنج شنبه 06 بهمن 1390, 22:58 عصر
درود
خوب وقتی فرم ویرایش رو نشون میدی مقادیر قبلی رو تو value تکس باکسها بریز و اگه کاربر تغییر داد یا نداد دیگه نیازی به کنترل نباشه.چون اگه تغییر نده قبلی ها دوباره بروز میشن و اگه هم تغییر دادا خوب اینا بروز میشن.این بهترین روشه به نظر من.

milyooner
پنج شنبه 06 بهمن 1390, 23:02 عصر
دوست عزیز مقدار آواتار که عکس باشه رو نشون میدن، نمیریزن دوباره تو تکس باکس!
یا وقتی پسورد MD5 میشه نمیشه که تو تکس باکس نشونش بدم

روشی که شما میگید برای مواردی غیر از این 2 مورد که بنده گفتم یعنی سایر فیلدها بله خوبه و جواب میده و همینکارم میکنم اما برای این 2 مورد چی؟

yones_safari
پنج شنبه 06 بهمن 1390, 23:10 عصر
عزیز خوب تو img عکس رو نشون بده.و برای پسورد هم باید چک کنی ببینی خالیه یا نه.پسورد که هیچ وقت خالی نمیشه!!!!میشه؟؟؟:قهقهه:

milyooner
پنج شنبه 06 بهمن 1390, 23:39 عصر
دوست عزیز پیشنهاد میکنم شما برید ببینید MD5 چی هست.
وقتی هم جواب سوالی رو نمیدونید بی جهت شلوغ نکنید.
بله پسورد میتونه خالی باشه
شما به قسمت تنظیمات کاربری همین سایت برید ببینید پسورد خالیه یا پر وقتی پسوردی از طریق md5 ایجاد میشه دیگه دیده نمیشه که بخوان قابلیت بازگشتی براش تعریف کنند و شما ببینید.

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

mohsen24000
جمعه 07 بهمن 1390, 00:02 صبح
تصور من اینه که راهی جز نوشتن چند خط کد نیست یا اصلا یه تابعی بنویسید که دستور آپدیت رو generate کنه اون هم به ازای متغییرهایی که دارای مقدار هستند...

mohsen24000
جمعه 07 بهمن 1390, 00:16 صبح
یک نمونه برای مثال:


function _update($table, $update_values,$id) {
foreach($update_values as $key=>$value) {
$SqlUpdate[]=$key."="."'".$value."'";
}
$SqlUpdate = implode(',', $SqlUpdate);
$sql="UPDATE $table SET $SqlUpdate where id=$id";
$result = mysql_query($sql) ;
if (!$result) {
echo ' '.mysql_error().' ';
return 0;
}
else return 1;
}

حالا میتونید شرط تهی نبودن رو قبل از فراخوانی تابع و یا داخل حلقه انجام بدید برای جلوگیری از مقادیری که نیاز به آپدیت ندارند...

yones_safari
جمعه 07 بهمن 1390, 00:21 صبح
دوست عزیز پیشنهاد میکنم شما برید ببینید MD5 چی هست.
وقتی هم جواب سوالی رو نمیدونید بی جهت شلوغ نکنید.
بله پسورد میتونه خالی باشه
شما به قسمت تنظیمات کاربری همین سایت برید ببینید پسورد خالیه یا پر وقتی پسوردی از طریق md5 ایجاد میشه دیگه دیده نمیشه که بخوان قابلیت بازگشتی براش تعریف کنند و شما ببینید.

من مشکلی هم برای نشان دادن آواتار ندارم شما بهتره سوال رو دوباره بخونید.
مهندس منظورم وقتی میخوای آپدیت کنی چک کن ببین اگه پسورد خالیه نکن.
در ضمن من واسه جواب دادن به سوالات حقوق نمیگیرم و اگه ندونم هم جواب نمیدم.چون قبلا پیاده سازی کردم به همون دلیل.md5 دیگه مال قاجاره خودت رو هم بروز کن.