صفر شدن فیلد تاریخ انقضاء بعد از آپدیت فرم در mysql

amir59

Member
سلام
من تو فرم آپدیت اطلاعات کاربر یک فیلدی دارم به نام افزایش اعتبار و چند فیلد دیگه هم مثل نام کاربری و ایمیل و غیره دارم
وقتی وارد فرم آپدیت میشم و مثلا ایمیل را ویرایش میکنم و موقع ذخیره فیلد افزایش اعتبار رو خالی میزارم اطلاعات این فیلد در دیتابیس صفر می شود
می خواستم ببینم چطور میتونم شرط بزارم که اگر فیلد افزایش اعتبار خالی بود اطلاعات اون فیلد آپدیت نشود و یا اگر فیلد افزایش اعتبار صفر بود اطلاعات قبلی فیلد برگدونده بشه

توضیح اینکه این فیلد افزایش اعتبار تو تاریخ انقضا اثر میزاره و کاربردش این هست که اگر کاربری تاریخ اعتبارش تمام شده رو بشه با افزایش اعتبار مثلا یک ماه تمدید کرد
مشکل زمانی پیش میاد که مثلا یک کاربر 2 ماه از تاریخ انقضاش مونده و ما وقتی وارد فرم آپدیت می شویم و مثلا ایمیل کاربر را اپدیت می کنیم و فیلد افزایش اعتبار خالی می باشد آنوقت تاریخ انقضا صفر برگردانده میشود

لطفا" راهنمائی بفرمائید - متشکرم

$expire = date("Y-m-d", mktime (0,0,0,date('m')+$addcredit,date('d'),date('Y')));

$sql = "UPDATE `account` SET `credit`='$credit',`expire`='$expire',`price_custmer`='$price_custmer' ";
 

sanecity

Member
اول تو فورمت یه فیلد مخفی بزار و توش تاریخ قبلی رو بنویس
بعد موقع پردازش فرم چک کن ببین اگه فیلد تاریخ دست نخورده اس ، بجاش همون تاریخ قبلی که توی فیلد مخفی هست رو بزاره
 

amir59

Member
طوری که من متوجه شدم این روش عملی نیست چون تعداد کاربران زیاد هست حدودا" 400 وتاریخ انقضاء آنها تو دیتا بیس هست
حالا اگه شما منظورتون یه روش دیگه هست لطفا" بیشتر توضیح بدین .
متشکرم
 

sanecity

Member
اگه برای هر کاربر بصورت مجزا مشخصات رو آپدیت میکنید ، روشی که گفتم عملیه
اما اگه میخاید کل 400 تا رو با هم آپدیت کنی (که فکر نمیکنم اینطور باشه) جریان طور دیگریست
 

amir59

Member
سلام

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

sanecity

Member
این نمونه یه فرم با فیلد مخفی :
کد:
<form id="form" name="form" method="post" action="">
  <p> name : <input name="name" type="text" id="name" value="مهدی" /></p>
  <p>email : <input name="email" type="text" id="email" value="[email protected]" /></p>
  <p>expire : <input name="expire" type="text" id="expire" value="new_date_for_expaire" />
  <input name="hiddenField" type="hidden" id="hiddenField" value="old_date_expire" /></p>
</form>
حالا توی فیلد مخفی باید تاریخ expire رو از دیتابیس بگیری و به عنوان value قرار بدی
وقتی این فرم رو بفرستی برای اسکریپت پردازشگر کافیه یه دستور if بزاری مثال :
PHP:
<?php 
$name = $_POST['name'];
$email = $_POST['email'];
$expire = $_POST['hiddenField'];
if ($_POST['expire'] !== $_POST['hiddenField'] or $_POST['expire'] !== "")
$expire = $_POST['expire'];
?>
توی شرط گفتم اگه فیلد تاریخ جدید تغییر داده شد تاریخ جدید رو بزاره وگر نه همون قبلی که توی فیلد مخفی هست
 

Masoud1365

مدیر انجمن
شما اگه میخوایی که فیلد اعتبار صفر نشه یه نگاهی به استراکچر جدولی که در دیتا بیس هست بندازید ببینید که مقدار دیفالت واسش تعریف نکرده باشید !
 

amir59

Member
سلام

این کد php را به چه شکلی ارسال میکنید که مرتب و در جدول داخل صفحه بحث و گفتگو نمایش داده میشه ؟
 

sanecity

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

جدیدترین ارسال ها

بالا