2015-01-31 55 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「;

未測試爲不具有表結構,但這樣的事情應該工作