php查询,价格根据一天中的小时而变化

时间:2013-03-13 23:04:00

标签: php

我有以下表格,其中包含sql查询中的值: enter image description here

现在取决于一天中的小时,我希望能够更改值。 例如,它在下午晚些时候,我选择3 dagen EUR 20.00。由于现在这一天已经快结束了,我应该为1 dag支付较小的金额(例如4欧元),然后支付2 dagen 14.00欧元的价格,所以在当天的这个时刻,方框3 dagen应该显示18.00欧元

所以我知道如何获得当前时间,但是如何更改我的查询以反映这一点? 这是我用来获取此表的查询:

<?php
        echo "<h2>".$lang['pagina3_dagen']."</h2>";

        $number=="0";
        echo "<table class='prijs'>";
        echo "<tr>";

            $query="SELECT * FROM $tabel WHERE fietstype='$fietskeuze'";
            $result=mysql_query($query) or die ("Ophalen prijzen mislukt: ".mysql_error());

            while ($row=mysql_fetch_array($result)) {
            $days=$row[days];
            $price=$row[price];

            if ($days=="1") $writeday=$lang['pagina3_1dag'];
            if ($days >="2") $writeday=$lang['pagina3_meerderedagen'];

            echo "<td class='prijs'><h2><a href='framemaat.php?lang=".$_SESSION['lang']."&naam=".$naam."&postcodehuisnummer=".$postcodehuisnummer."&fietskeuze=".$fietskeuze."&opties=".$opties."&optieid=".$optieid."&days=".$days."'>".$days." ".$writeday."<br>EUR ".$price."</a><br>";
            $number++;
            if ($number=="5") {echo "<tr>"; $number="0";}   
            } 
        echo "</tr>";
        echo "</table>"; 
?>

我在想像伪代码一样:

$currenthour = date("H", time());
if (($currenthour >="13") && ($currenthour <"15"))
    {
    $pricedag1=($pricedag1-3eurodiscount);
    price in table result for 3 dagen=($pricedag1+$priceofdag2)
    }

但如何获得前一天的价格?所以来自查询的倒数第二个值?

1 个答案:

答案 0 :(得分:0)

我不完全确定我理解你桌子的细节,但这是一个镜头:

为什么不为您的产品(dagens?)提供单独的折扣表?这样,您可以查询您的产品并将其加入折扣表。

// you can decide the data type
CREATE TABLE Discounts (discount_id, product_id, start, end, discount);

然后你可以加入你的产品表

    SELECT p.*, d.discount 
      FROM products p
 LEFT JOIN discounts d ON d.product_id = p.product_id 
       AND start <= ? AND end >= ?;

因此,在收到结果集后,您可以检查折扣是否为空。如果不是,请申请必要的折扣。

if (!empty($row['discount']) {
   $price = $price - $row['discount'];
}

当然,您可以更进一步,确定折扣类型 - 折扣百分比,美元折扣等。