сам не могу допереть, поэтому прошу помощи.
есть две таблицы 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
вот нужно получить этот список из базы.
переменная храниться в массиве, где ключ это код товара, а значение это кол-во.
мне нужно получить список товаров с ценами. список необходимых товаров содержится в массиве, где ключ это код товара, а значение это кол-во.
если конечно возможно это одним запросом вытянуть.
к примеру массив 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 шт. и ее умножать на кол-во товара? если цена растет не пропорционально, то вычитать скиду?
Но если нет то в твоем случае запрос таков:
где
$id - переменная, отвечающая за id товара.
$colvo - число товара.
Но если нет то в твоем случае запрос таков:
$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, то отдаем а пол цены.
Но я б лучше со скидкой сделал:
допустим на 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
);
goods
(
name varchar(20),
cost int,
id int
);
Спустя 1 минута, 28 секунд (16.03.2010 - 19:11) Игорь_Vasinsky написал(а):
видимо база уже забита а это интернет магаз и поэтому проще алгоритм переписать, гдето я видел статью как правильно просчитать и составит БД
Спустя 4 минуты, 58 секунд (16.03.2010 - 19:16) Mirexzpalich написал(а):
А можешь мне эту статейку показать?
А то бывает долго сижу с таблицами, переделываю пока лишнего не будет


_____________