[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получить правильное значение цены
udaff.es
добрый день.
сам не могу допереть, поэтому прошу помощи.
есть две таблицы goods и prices:

goods{id, name}
prices{good_id, cant_min, cant_max, price}

один товар из таблицы goods может иметь несколько записей в таблице prices, потому как цена зависит от кол-ва товара.

к примеру, в goods находится:
id = 68
name = кофеварка

а в таблице prices находится:
{good_id = 68
cant_min = 1
cant_max = 4
price = 10}

{good_id = 68
cant_min = 5
cant_max = 10
price = 8}

т.е. у одного товара есть две цены в зависимости от кол-ва заказываемого товара. если кол-во равно 6, то на выходе должен получить цену price = 8.

теперь, у меня есть массив, у которого ключи это goods.id, а значения - кол-во данного товара.
вопрос: можно ли одним запросом получить имена и нужные цены?




Спустя 9 минут, 47 секунд (16.03.2010 - 13:01) Игорь_Vasinsky написал(а):
т.е от 1-4 цена 10 и от 5-10 цена 8 Правильно ?

если да то как переменная передаётся о количестве заказанных товаров ?

Спустя 26 минут, 29 секунд (16.03.2010 - 13:27) udaff.es написал(а):
верно.
переменная храниться в массиве, где ключ это код товара, а значение это кол-во.

мне нужно получить список товаров с ценами. список необходимых товаров содержится в массиве, где ключ это код товара, а значение это кол-во.

если конечно возможно это одним запросом вытянуть.

к примеру массив cart:
cart[68]=6
cart[12]=3
cart[6]=2

вот нужно получить этот список из базы.

Спустя 1 час, 50 минут, 21 секунда (16.03.2010 - 15:17) Игорь_Vasinsky написал(а):
НУ так всё просто создай условия (или рад условий) и взависимости от того какое количество выбрал посетитель посылай запрос в базу на нужную цену..

Спустя 3 часа, 27 минут, 58 секунд (16.03.2010 - 18:45) Mirexzpalich написал(а):
А не легче. В базе создать одну таблицу, в ней цена 1 шт. и ее умножать на кол-во товара? если цена растет не пропорционально, то вычитать скиду?
Но если нет то в твоем случае запрос таков:

$result=mysqli_query($link,"select name, price from goods, prices where id=".$id." and good_id=id and cant_min<=".$colvo." and cant_max>=".$colvo)

где
$id - переменная, отвечающая за id товара.
$colvo - число товара.

Спустя 3 минуты, 14 секунд (16.03.2010 - 18:49) Игорь_Vasinsky написал(а):
Цитата
А не легче. В базе создать одну таблицу, в ней цена 1 шт. и ее умножать на кол-во товара? если цена растет не пропорционально, то вычитать скиду?
Но если нет то в твоем случае запрос таков:


тут же не просто цена зависит от кол-ва товара и тем более не растёт пропорционально, а типо акция 4 штуки по 200 или 10 по 120

Спустя 9 минут, 36 секунд (16.03.2010 - 18:58) Игорь_Vasinsky написал(а):
а куда он сам делся?

Спустя 8 минут, 26 секунд (16.03.2010 - 19:07) Mirexzpalich написал(а):
Так-да. ты прав.
Но я б лучше со скидкой сделал:
допустим на 1-5 -200
6-10 -180
11-15 - 160.
Т.е. допусти на каждые 5 штук цена падает на 20.
А когда количество более 20, то отдаем а пол цены.



$result=mysqli_query($link,"select name, price from goods where id=".$id);
$row=mysqli_fetch_array($result);
$cost=$row['cost'];
if ($kolvo<20){
$skidka_na_kolvo=$kolvo%5;
$skidka=$skidka_na_kolvo*20;} else {$skidka=$cost/2;}
$cost=$cost-$skidka;
echo "За ".$kolvo." ".$row['name']." с вас ".$cost." чего-то там";

Спустя 2 минуты, 37 секунд (16.03.2010 - 19:09) Mirexzpalich написал(а):
И табла одна
goods
(
name varchar(20),
cost int,
id int
);

Спустя 1 минута, 28 секунд (16.03.2010 - 19:11) Игорь_Vasinsky написал(а):
видимо база уже забита а это интернет магаз и поэтому проще алгоритм переписать, гдето я видел статью как правильно просчитать и составит БД

Спустя 4 минуты, 58 секунд (16.03.2010 - 19:16) Mirexzpalich написал(а):
А можешь мне эту статейку показать? smile.gif А то бывает долго сижу с таблицами, переделываю пока лишнего не будет mad.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.