PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سوال در مورد php و mysql



AliDesign
August 27th, 2015, 03:37
سلام
دوستان امکان این هست که یک عددی به صورت اتومات از دیتابیس کم بشه
بزارید اینجوری مطرح کنم سوالمو
من میخوام یک عددی رو به دیتابیس بدم و در هر 24 ساعت یکی از اون عدد کم بشه
تا اینکه برسه به عدد 0 میخواستم بدونم آیا راهی برای این هست
یکی از دوستان گفت از تاریخ سرور استفاده کن
دوستان اگه راهی مد نظرشون هست راهنمایی کنند یا کدهاشو در اختیار من بزاند.
تشکر

shahinmq
August 27th, 2015, 16:20
بله امکانش هست.

ساده ترین راهش اینه که دستور کاهش را در فایل php بنویسید و یک Cron job ایجاد کنید راس ساعت 00:00 (خودتون تنظیم باید بکنید) دستور انجام میشه.

AliDesign
August 28th, 2015, 01:06
آیا شما می تونید کدرو در اختیار من بزارید؟ چون من واقعا نمی دونم باید چیکار کنم

dexin
August 28th, 2015, 10:05
مشخصات دیتابیس ( منظور نام جدول و ستون هاست )‌ رو به صورت خصوصی ارسال کنید تا کدشو ارسال کنم براتون

shahinmq
August 28th, 2015, 12:05
آیا شما می تونید کدرو در اختیار من بزارید؟ چون من واقعا نمی دونم باید چیکار کنم

نام جدول مورد نظر و رکورد و ... که میخواهید تغییر کند ارسال کنید

AliDesign
August 30th, 2015, 04:54
فعلا جد ول هاشو درست نکردم شما کدهاشو زحمت بکشید بنویسید من خودم دیتابیس و جدول هارو بهش میدم

- - - Updated - - -

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

eS ecH eL
August 30th, 2015, 07:32
این کد میتونه کمکتون کنه:


$futureDate = '2015-08-10';
$d = new DateTime($futureDate);
echo $d->diff(new DateTime())->format('%a');

shahinmq
August 30th, 2015, 14:15
به دلیل اینکه چینش دیتابیستون رو نمیدونم به چه شکلی هستش ، براتون یک دیتابیس ساختم و برنامه طبق اون نوشته شده :



class reduce_number
{
protected $link;
private $number;

public function reduce_number()
{
$this->link=new MySQLi('localhost','db_username','db_password','db _name');//Moshakhasate Database
$this->link->set_charset('UTF8');
}
public function do_reduce()
{
$search_for_number=$this->link->query("SELECT `my_number` FROM `my_tbl`");
$row=$search_for_number->fetch_assoc();
if($row['my_number']>=1)
{
$this->number=$row['my_number']-1;
$this->link->query("UPDATE `my_tbl` SET `my_number`='$this->number' ");
}
else
$this->number=0;
return $this->number;
}
}
if($_SERVER['SERVER_ADDR']==$_SERVER['REMOTE_ADDR'])
{
$object=new reduce_number();
echo $object->do_reduce();
}


حال درون پنل هاستتون یک cron job ایجاد کنید و زمان اونرو بر روی ساعت 12 هرشب تنظیم کنید ، کد کرون جاب :


/usr/bin/wget -O - -p http://YOUSITE.com/cron.php


از ضمیمه استفاده کنید و فایل را دانلود کنید27894

برنامه به صورتی تنظیم شده که تنها در صورتی که آیپی باز کننده فایل ، آیپی سرورتون باشه کاهش عدد صورت میگیره

AliDesign
September 1st, 2015, 20:50
تشکر از کدی که در اختیارم گذاشتید sheagle یک سوال؟ الان من تو دیتابیس اون عدد 19 رو برای مثال 30 بزارم خودش هر 24 ساعت یکی از اون عدد کم میکنه تا برسه به 0؟ درضمن یه چیز دیگه من اینو میخوام برای اشتراک کاربرانم فعالش کنم و نیازی نیس که حتما ای پی سرور رو بخونه همینکه عدد هنگام خرید اشتراک رو دیتابیس 30 بیفته و در هر 24 ساعت یکی ازش کم کنه تا برسه به عدد 0 کافیه چون من خرید اشتراک و جوری کردم که وقتی کاربر خرید اشتراک زد و از بد ازپرداخت موفق به صفحه مورد نظر انتقال یافت عدد 30 رو تیبل مشخص شده میفته فقط این بتونه اون عدد و کم کنه برام کافیه.

- - - Updated - - -

داداش این رو لوکال به خوبی جواب میده ولی رو هاست نه مشکل داره به کرون جاب هم معرفی کردم.
راستی یه چیز دیگه من کاربرانم تو تیبل users و روی user ذخیره میشه میخوام کاری کنم
که عدد my_number هر آی رو فقط به خودش نمایش بده

- - - Updated - - -

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


<?php
$futureDate = '2015-07-25';
$d = new DateTime($futureDate);
echo $d->diff(new DateTime())->format('%a');

?>

Raykaco
September 2nd, 2015, 10:08
سلام

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