0

我有下表,其中包含来自 sql 查询的值: 在此处输入图像描述

现在取决于一天中的时间,我希望能够更改值。例如,在下午晚些时候,我选择选项 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)
    }

但是如何获得前一天的价格呢?那么来自查询的倒数第二个值?

4

1 回答 1

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'];
}

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

于 2013-07-17T23:56:06.940 回答