我有以下表格,其中包含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)
}
但如何获得前一天的价格?所以来自查询的倒数第二个值?
答案 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'];
}
当然,您可以更进一步,确定折扣类型 - 折扣百分比,美元折扣等。