رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تغییر رنگ به سبز در صورت افزایش و تغییر رنگ به قرمز در صورت کاهش (حل شد)
#1
 چطوری می شه شرط نوشت که اعدادی که از دیتابیس استخراج می شه در صورتی که با بیشتر از مقدار قبلی باشه رنگش سبز بشه و اگه کمتر بشه قرمز شه...

به یاهو فاینسن برید اعداد سهام ها رو نگاه کنید.

http://finance.yahoo.com/corporate-news/


ه مثال می زنم.

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

mysql
id | name |price |time
1  | tala |2000  |20:15
2  | tala |2010  |20:16
3  | tala |2020  |20:17

 تو جدول بالا آخرین قیمت 2020 ... با قبلی یعنی 2010 مقایسه بشه اگر بیشتر باشه سبز با رنگ سبز چاپ بشه و اگه کمتر باشه با رنگ قرمز چاپ بشه. که در اینجا 2020 بیشتر از مقدار قبلیشه پس باید با رنگ سبز چاپ بشه.


این الگوریتم رو نوشتم فقط تو اجراش مشکله که چطوری شرط مقایسه ای بنویسم.

البته تو ذهنم اینه که مقدار فیلد پرایس با ای دی جدید با مقدار فیلد پرایس قبلیش مقایسه بشه . یعنی id 3 با id 2


این الگوریتم رو نوشتم فقط تو اجراش مشکله که چطوری شرط مقایسه ای بنویسم. Huh
پاسخ
تشکر شده توسط:
#2
من متوجه نشدم شما تو کد نویسی اش مشکل دارین ، یا اینکه سوال اینکه چطور باید در هر لحظه اخرین قیمت و یک رکورد ما قبل اخرین رکورد رو پیدا کرد ؟
پاسخ
تشکر شده توسط:
#3
سوال من تو چطوری مقایسه کردن دو مقدار فیلد ، که اگه مقدار جدید بیشتر مقدار قبلی بود بارنگ سبز چاپ بشه و اگه کمتر بود با رنگ قرمز چاپ شه
پاسخ
تشکر شده توسط:
#4
اگر تغییرات لحظه ای است میتونید برای اولین بازدید کاربر عدد به صورت عادی نمایش داده بشه و تو سشن و یا کوکی مقدار قبلی رو ذخیره کنید. بعد با مقدار جدید مقایسه کنید و تغییرات مثبت و منفی نشون بدهید.
وبلاگ من

System.out.PrintLn("Say to Prof.James Gosling Java Never Dies ! I HATE Microsoft and its Technologies ! ");
پاسخ
تشکر شده توسط: بیتا_حکمت , tazeha
#5
حتما لازم نیست توی چیزی نگه داری می تونی بعد از ثبت داخل بانک بدون اتصال مجدد به بانک با دادن یه مقدار id به یه span که قیمت رو توش نمایش می دی مقدار جدید رو با مقدار span مقایسه کنی.
پاسخ
تشکر شده توسط: tazeha
#6
میتونید برای اون مقدار، 2 فیلد old_value و new_value بگذارین و هربار تغییری انجام میشه، مقدار new_value رو توی old_value بگذارین و مقدار جدید رو داخل new_value قرار بدین. اینطوری به راحتی با مقایسه این دو فیلد میتونین بفهمین مقدار جدید بیشتر از قبلیه یا کمتر.
پاسخ
تشکر شده توسط: tazeha
#7
تشکر از راهنمایی ها ، راه حل پیدا شد
پاسخ
تشکر شده توسط:
#8
برای تغییر رنگ اینطوری کد نوشته شد.

<table border="1" width="50%">
            <tr>
                <td>Date</td>
                <td>Amont</td>
            </tr>
            <?php
 
            $params =null; //or any params
            $mPDO =  new PDO('mysql:host=localhost;dbname=usd', 'root', '',
                array(
                    PDO::ATTR_PERSISTENT => true,
                    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
                )
            );
            $mStatement = $mPDO->prepare("select * from uds order by id desc limit 2  ");
$mStatement->execute($params);
$pays = $mrkfStatement->fetchAll(PDO::FETCH_ASSOC);


$colour = 'black';
$resultcount = count($pays);
if ($resultcount == 2) {
 if ($pays[1]['price'] > $pays[0]['price']) $colour = 'red';
 if ($pays[1]['price'] < $pays[0]['price']) $colour = 'green';
 }
if ($resultcount > 0) {
 echo "<tr><td><span style='color: $color'>"  .$pays [$resultcount-1]['price'] . "</span></td></tr>";
 }


اما نمی دونم چرا وقتی echo زده میشه رنگ تغییر نمی کنه. در صورتی که آخرین عدد از مقدار قبلیش در جدول دیتابیس بیشتره؟
پاسخ
تشکر شده توسط:
#9
احتمالا مشکل از نام گذاری متغییر رنگ هستش که بصورت colour$ تعریف کردید و بصورت color$ دارید استفاده می کنید.
...
پاسخ
تشکر شده توسط:
#10
(30-04-1394، 10:26 ق.ظ)MRPM نوشته: احتمالا مشکل از نام گذاری متغییر رنگ هستش که بصورت colour$ تعریف کردید و بصورت color$ دارید استفاده می کنید.

اونم حل کردم ولی نشد
پاسخ
تشکر شده توسط:
#11
متغییر resultcount$ چه عددی رو نشون میده؟
...
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان