我有一个餐厅的脚本,您可以在购物车中添加1 + 1优惠的披萨,如果有2个披萨,以实际价格显示最贵的,并且最便宜的0.01,如果是例如,用户添加3个比萨饼,花费10美元,3个花费11美元需要为每个比萨饼显示11美元,而3个比萨饼花费10美元需要0.01美元,我尝试了一切,但无法解决这个问题。 / p>
$dbres1plus1 = mysql_query("SELECT * FROM cos_cumparaturi WHERE extra='1plus1' AND ip='$user_ip'");
$numara_pizze = mysql_num_rows($dbres1plus1);
if($numara_pizze % 2 != 0) {
echo '<tr>
<td colspan="5"><sup style="color: red;"><strong>Ai adaugat '.$numara_pizze.' pizze in oferta, ai nevoie de '.$numara_pizze_total.' pizze pentru a completa oferta.</strong></sup></td>
</tr>';
}
}
echo '<tr id="'.$cos{'id'}.'">
<td colspan="3"><strong>'.$pizza{'nume'}.'</strong> <em>('.$marime.'cm)</em></td>
<td align="right" nowrap="nowrap" style="text-align:right;">'.$pizza{'pret'}*$happyhour.' lei</td>
<td width="20">
<a href="#" class="stergecos" id="'.$cos{'id'}.'">
<img style="margin-top:4px;" src="http://website/images/delete_icon.png" widht="16" height="16" border="0" alt="Sterge produs" /></a></td>
<td> </td></tr>';
}
}
我在数据库中有一行价格。我试图获得最低数量并替换它,但由于它是一个while循环它取代所有价格。
答案 0 :(得分:0)
最简单的方法是使用ORDER BY
中的MYSQL
。如果您按PRICE DESC
订购,则可以显示上半部分正确,后半部分显示为0.01
简单示例:
<?php
$query = 'SELECT `Pizza`, `Price` FROM `orders` ORDER BY `Price` DESC';
//your code to exec query
//get the row count (example with mysqli)
$nrOfOrders = $result->num_rows;
//1 = pay 1
//2 = pay 1;
//3 = pay 2;
//4 = pay 2;
//etc
$fullPrice = ceil($nrOfOrders/2);
$index = 1;
//loop trough orders
foreach($result as $row)
if ($index <= $fullPrice) {
//show full price
} else {
//show 0.01
}
//increase index
$index++;
}
?>
答案 1 :(得分:0)
在您的SQL中,您可以测试价格并返回您想要的内容。我不知道你的桌子是什么样的,但有些像......
$ sql =“SELECT IF(价格&lt; MAX(价格),0,价格)AS the_price FROM cos_cumparaturi WHERE extra ='1plus1'AND ip ='$ user_ip'GROUP BY extra”;
未经测试,因为没有表格结构,但这样的事情应该起作用