2015-01-31 58 views
0

我有一个餐厅的脚本,您可以在购物车的1 + 1报价中添加比萨饼,如果有2个比萨饼可以显示最昂贵的比萨饼与真实的价格和最便宜的0.01,如果例如用户增加3比萨的花费10 $和3花费11 $需要显示11美元的每个比萨成本和0.01比萨的3美元成本10美元,我尝试了一切,但无法设法解决这个问题。从数据库中获得所有结果,但显示0价格为最低价格

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

我在数据库中有价格的一排。我试图得到最低的数字,并取代它,但自从它的一个循环,它取代了所有的价格。

+1

请出示你的代码,告诉你如何提取数据,等等等等。 Short表示,将其作为一个问题想回答 – baao 2015-01-31 21:39:47

+0

是的,请显示您正在尝试修复的代码... – serakfalcon 2015-01-31 21:40:05

+0

分享您的表格结构和一些数据样本会很好。 – RubahMalam 2015-01-31 21:40:06

回答

0

最简单的方法就是在MYSQL中使用ORDER BY。如果您订购的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++; 
} 

?> 
+0

这没有工作原因有时我有不同的价格,但有时我有2个比萨的相同的价格说10美元,我想1显示为0.01和其他与全价10 ... – 2015-01-31 23:35:06

+0

为什么这种工作不呢?它确实如此。它以常规价格显示订单中最昂贵的一半,其余为0.01 – 2015-02-01 05:55:22

0

在SQL可以测试价格,并返回你想要什么。我不知道你的桌子是什么样的,但类似...

$ sql =“选择IF(价格< MAX(价格),0,价格)AS the_price FROM cos_cumparaturi WHERE extra ='1plus1'AND ip ='$ user_ip'GROUP BY extra“;

未测试为不具有表结构,但这样的事情应该工作