从数据库获取所有结果,但显示最低价格的0价格

时间:2015-01-31 21:38:10

标签: php mysql

我有一个餐厅的脚本,您可以在购物车中添加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'}.'">

                        &nbsp;<img style="margin-top:4px;" src="http://website/images/delete_icon.png" widht="16" height="16" border="0" alt="Sterge produs" /></a></td>
                      <td>&nbsp;&nbsp;&nbsp;</td></tr>';                    
} 
}   

我在数据库中有一行价格。我试图获得最低数量并替换它,但由于它是一个while循环它取代所有价格。

2 个答案:

答案 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”;

未经测试,因为没有表格结构,但这样的事情应该起作用