[英]Loop Through results PHP or Jquery
我已经为此工作了将近三天,但效果不佳。 我试图在Laravel中完成此操作。 但我正在寻找任何类型的好主意。
我有一个建议零售价的产品。 自产品发布以来,每一小时的每一天价格都下降10%。 但我想显示每天价格的下降,如您在张贴的图片中所见。
这是我一直在尝试的一些方法。 他们似乎都不干净。
在数据库中增加1行,并将其称为价格。 -编写一个CRON,它将每小时在服务器上运行一次,以查看所有产品并在该表中设置新价格。 但这意味着我将使用服务器上的大量资源。
在数据库中添加10条额外的行,并在添加产品时生成价格。 但是我在尝试弄清楚如何显示星期几并用红色突出显示时遇到问题。 我猜我可以通过jQuery做到这一点。 不太了解,但这是一种方法吗?
从该数据库中提取产品,然后循环浏览每个数据库,并使用此代码生成表格和价格。 但是,如果流量巨大,那将会消耗很多服务器。
还有其他想法吗? 任何可以帮助我简化这一点的东西。
这是我为3ed选项提供的代码。 由于我不知道jQuery,我没有第二个。
$msrp = 29.59;
$dayposted = "2016-1-26";
$cDate = Carbon::parse($dayposted);
$today = $cDate->diffInDays();
$days = [];
$i = 1;
$percent = 0;
for($n=0 ;$n<10; $n++) {
setlocale(LC_MONETARY, 'en_US.UTF-8');
if ($i == $today) {
$day = array_add(['day' => 'Day '.$i], 'price' , number_format( $msrp * ((100-($i*10))/100),2, '.', ''));
$day = array_add($day, 'class', 'today');
$price = number_format( $msrp * ((100-($i*10))/100),2, '.', '');
}
elseif($i == 10) {
$day = array_add(['day' => 'Final'], 'price' , number_format( $msrp * ((100-($i*10))/100),2, '.', ''));
$day = array_add($day, 'class', '');
}
else{
$day = array_add(['day' => 'Day '.$i], 'price' , number_format( $msrp * ((100-($i*10))/100),2, '.', ''));
$day = array_add($day, 'class', '');
}
array_push ($days, $day);
$i++;
}
这也是我要完成的工作。
答案取决于您希望何时完成工作(计算)。
我同意,如果不需要,每次用户请求信息时都要进行计算,这显然是对资源的浪费。 但是 ,只要您不进行大量的迭代,查询或对数据库中所有事物进行最坏的计数,数学计算就不会非常密集。
话虽如此,如果您真的想确保这些计算不会使您的服务器停顿下来,那么我建议的解决方案是在客户端上进行。
您将原始数据返回给客户端,并在浏览器上计算价格,这样,计算就可以在服务器之外完成,并且仅在需要时进行。 但是,这可能不是一个选择,因为您可能不想向客户公开定价方法。 不过,一个简单的javascript函数只是最简单的方法,该函数仅根据now和发布日期之间的差来计算减少百分比。
无论如何,这可能是微优化的情况。 如果您担心的话,请做一些基准测试,看看服务器在负载下如何处理它。 这是唯一确定是否需要优化的唯一方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.