رفتن به مطلب
  • 0

راهنمایی در گرفتن آمار ختم صلوات


abbas2142

سوال

سلام دوستان

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

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

مثلا دیروز چند صلوات

توی این هفته چند تا

توی این ماه چند تا

توی این سال چند تا و...

یه چیزی توی مایه های عکس پایین میخواستم درست کنم

ممنون

Untitled.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر

14 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام دوستان

درست شد مشکل 

سورسش رو برای استفاده عزیزان توی بخش سورس کدهای گذاشتم

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

باید موقع ارسال.زمان رو هم بفرستی

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

بیشتر کارش سمت سروره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام ، بابت تفکیک یک ماه اخیر و یا یکسال اخیر راه  زیر بنظرم میاد :

 

همونطور که آاقامهدی فرمودن تاریخ امروز رو به صورت مثلا 20/5/1399همراه با تعداد صلوات ها ارسال کنید ، بعد برای تفکیک کردن تو برنامه به این شکل عمل کنید »

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

همینطور میتونید سال رو به تنهایی ارسال کنید مثلا 1399 و بگید همه رکوردهایی که با سال 1399 برابر هستن رو توی لیست ویو نمایش بده و همه رو جمع بزنه و تعداد صلوات های سال جاری دربیاد ، اینجوری میشه صلوات های سال قبل رو هم جمع زد ...

و به همین شکل  .....

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون از راهنمایی دوستان

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

در 15 دقیقه قبل، mohammadjavadmajidi گفته است :

سلام ، بابت تفکیک یک ماه اخیر و یا یکسال اخیر راه  زیر بنظرم میاد :

 

همونطور که آاقامهدی فرمودن تاریخ امروز رو به صورت مثلا 20/5/1399همراه با تعداد صلوات ها ارسال کنید ، بعد برای تفکیک کردن تو برنامه به این شکل عمل کنید »

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

همینطور میتونید سال رو به تنهایی ارسال کنید مثلا 1399 و بگید همه رکوردهایی که با سال 1399 برابر هستن رو توی لیست ویو نمایش بده و همه رو جمع بزنه و تعداد صلوات های سال جاری دربیاد ، اینجوری میشه صلوات های سال قبل رو هم جمع زد ...

و به همین شکل  .....

 

 

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

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

 

Capture.PNG

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوستان

این php میاد تمام ستون هارو جمع میکنه و خروجی بهم میده

ولی من خواستم یه شرطی هم براش بذارم بگم که مثلا بیاد اول جست و جو کنه توی ستون date عدد 1398 رو بعد بیاد جمعشون کنه

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

<?php
$con=mysqli_connect("localhost","test","test","test");

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$res = $con -> query(" SELECT  SUM(title) as sum FROM tedad_salavat ") or die($mysqli->error);

$val = $res -> fetch_array();
    $tech_total = $val['sum'];


echo $tech_total; 
?>

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 17 دقیقه قبل، abbas2142 گفته است :

سلام دوستان

این php میاد تمام ستون هارو جمع میکنه و خروجی بهم میده

ولی من خواستم یه شرطی هم براش بذارم بگم که مثلا بیاد اول جست و جو کنه توی ستون date عدد 1398 رو بعد بیاد جمعشون کنه

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


<?php
$con=mysqli_connect("localhost","test","test","test");

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$res = $con -> query(" SELECT  SUM(title) as sum FROM tedad_salavat ") or die($mysqli->error);

$val = $res -> fetch_array();
    $tech_total = $val['sum'];


echo $tech_total; 
?>

 

سلام ، بنظرتون اگر داخل خود برنامه محاسبات انجام بشه بهتر نیست ؟

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

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوست من

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 44 دقیقه قبل، abbas2142 گفته است :

سلام دوست من

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

دو راه هست ،

یکی یکم ممکنه طول بکشه و اون یکی سریع تر هست ،

 

راه اول اینه که وقتی آیتم ها رو وارد لیست ویو کردید با یک تایمر با اینتروال 1 سریع همه رو جمع بزنید و در یک متغیر int  قرارش بدید ، که به صورت زیر میشه :

Sub Globals

dim tedaditems as int       'تعداد آیتم های جستجو شده را در این متغیر میریزیم
dim tedadsalavat as int     'این رو جلوتر عرض میکنم
dim natige as int           'این نتیجه جمع تعداد صلوات ها رو نمایش میده
dim timer1 as timer         'یک تایمر با اینتروال1
End Sub
  
Sub Activity_Create(FirstTime As Boolean)

tedaditems = listview1.size
tedadsalavat=0  'در شروع برنامه باید صفر باشه
natige=0  'در شروع برنامه باید صفر باشه
Timer1.Initialize("timer1",1)
Timer1.Enabled=True
End Sub
  
  
Sub timer1_tick
  
tedadsalavat=tedadsalavat+1
  natige=natige+listview1.getitem(tedadsalavat)
     if tedadsalavat=tedaditems then
        timer1.enabled=false
           Msgbox(natige,"صلوات تا بحال فرستاده شده است")
     end if
End Sub

 

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

 

 

راه اول که عرض کردم البته وقت زیادی نمیگیره ، این که عرض کردم ممکنه یکم طول بکشه بخاطر محاسبه رکوردهای یک سال هست که تایمر باید 365 تا محاسبه رو با سرعت بالا انجام بده و کلا شاید برای سال 20 ثانیه طول بکشه در غیر اینصورت محاسبه روز و ماه رو چند ثانیه بیتشر نمیشه ///

 

موفق باشید

اللهم صل علی محمد و آل محمد و عجل فرجهم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برا ذخیره تاریخ توی بانک اطلاعاتی همیشه از تونیکس تایم استفاده کنید .تبدیل تاریخ به تونیکس تایم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، abbas2142 گفته است :

سلام دوستان

این php میاد تمام ستون هارو جمع میکنه و خروجی بهم میده

ولی من خواستم یه شرطی هم براش بذارم بگم که مثلا بیاد اول جست و جو کنه توی ستون date عدد 1398 رو بعد بیاد جمعشون کنه

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


<?php
$con=mysqli_connect("localhost","test","test","test");

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$res = $con -> query(" SELECT  SUM(title) as sum FROM tedad_salavat ") or die($mysqli->error);

$val = $res -> fetch_array();
    $tech_total = $val['sum'];


echo $tech_total; 
?>

 

از دستور where استفاده کردی

اخر کویریت اینشکلی بنویس

WHERE `sal`='98'"

sal مثاله

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 7 ساعت قبل، hamed_ghorbani گفته است :

برا ذخیره تاریخ توی بانک اطلاعاتی همیشه از تونیکس تایم استفاده کنید .تبدیل تاریخ به تونیکس تایم

میشه بیشتر توضیح بدین سرچ کردم یه مشت عدد دادن بهم که ساعت و ثانیه هم بود حالا من فقط میخوام روز ماه سال رو بفرستم سمت سرور

لینک ارسال
به اشتراک گذاری در سایت های دیگر

یونیکس تایم یک واحد تاریخ همگانیه که از نیمه شب سال 1970 شرو شده

و اکثر محیطای برنامه نویسی باهاش هماهنگه

مثلا تو بیسیک datatime.now

و تو php 

echo TIME()

و برا کار شما باید ببینی تاریخ رو با چه فرمتی ذخیره کنی بهتره

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

در در 9 مهر 1399 در 19:21، abbas2142 گفته است :

ممنون از راهنمایی دوستان

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

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

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

 

Capture.PNG

نه بنظرم اگر به این شکل عمل کنید مشکلی بوجود نمیاد ، اگر بخواید تعداد صلوات های یک روز خاص رو حساب کنید باید دستور جست و جوی دقیق بدید پس روز رو به همراه ماه و سال جست و جو میکنید مثلا میگید روز 20 آبان 99 چندتا صلوات فرستاده شد ؟

اگر بخواید تعداد صلوات های یک ماه خاصی رو جست و جو کنید تنها شماره ماه به همراه سال(روز نیازی نیست) رو جست و جو میکنید ، مثلا میگید که ماه 6 سال99 چند تا صلوات فرستاده شد ؟

اگرم بخواید تعداد صلوات های یک سال خاصی رو بدست بیارید فقط سال رو جست و جو میکنید مثلا سال 1399 چند تا صلوات فرستاده شد ؟

 

پس باید سه تا ستون ایجاد کنید ، یک ستون برای جست و جوی روزخاص که فیلدهاش به این صورته : مثلا 1399/6/8

یک ستون برای جست و جوی ماه که به این شکله :  مثلا 1399/6

یک ستون هم تنها برای سال که فیلدهاش به این صورته : 1399

 

پس با هربار ارسال صلوات توسط کاربر ، تاریخ به سه صورت ارسال میشه و تو این سه ستون قرار میگیره (روزماه سال  -    ماه و سال   -   سال )

 حالا دیگه کارشما راحته و فقط کافیه که دستور جست و جو بدید مثلا تاریخ امروز :1399/6/20 هست و شما اینو تو دیتابیس جست و جو میکنید و تعداد رکوردهایی که بدست میاد رو جمع میزنید میشه تعداد صلوات های امروز

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

حالا دستور جست و جو به این صورت رو میدید : 1399/6 و تعداد رکوردهایی که بدست میاد میشه تعداد صلوات های ماه جاری

بعد دستور جست و جو به این شکل : 1399 و تعداد صلوات های سال جاری رو بدست میارید

 

ایشالا درست بشه:53:

 

اگر نشد بفرمایید یکم بیشتر روش فکر میکنم و سورسشو درست میکنم میفرستم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

تا حدودی هم خودم به این نتیجه رسیدم که

بیام تاریخ گوشی رو بگیرم و منحای 1 کنم میشه روز قبل

ماه رو بگیرم منحای 1 کنم میشه ماه قبل

برای سال هم همین طور

ولی خوب یکمی پیچیده شده حالا وقت کردم ببینم میتونم درستش کنم یا نه

اگه شد که کدهاش رو میذارم تا دوستان استفاده کنن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...