|
|
|
| Привет! Делаю систему скидок, в базе есть данные:
limit | discont
Лимит цены | Скидка %
1000 1
5000 3
10000 10
|
Пишу функцию:
<?php
function discont ($mymoney) {
$res = query("SELECT limit, discont FROM ".$mydiscontdb." ORDER BY `limit`"); // old
if (count($res) == 0){
return "0";
}
foreach ($res as $row) {
if ($mymoney >= $row->limit) { // по идеи здесь нужно каким то образом дописать условие, && $mymoney < следующего лимита если он имеется
return $row->discont;
}
else {
return "0";
}
}
}
?>
|
С этим кодом если передать $mymoney = 10000 то получим return меньшей скидки, тоесть 1 % а должно быть 10 %
соответственно, нужно каким то образом дописать условие, && $mymoney < следующего лимита если он имеется
Есть идеи как это провернуть? | |
|
|
|
|
|
|
|
для: tima2010
(21.10.2011 в 12:24)
| | попробуйте так:
<?php
function discont ($mymoney) {
$res = query("SELECT limit, discont FROM ".$mydiscontdb." WHERE `limit`<='$mymoney' ORDER BY `limit` DESC limit 1"); // old
if (count($res) == 0){
return "0";
}
foreach ($res as $row) {
if ($mymoney >= $row->limit) { // по идеи здесь нужно каким то образом дописать условие, && $mymoney < следующего лимита если он имеется
return $row->discont;
}
else {
return "0";
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(21.10.2011 в 12:33)
| | Почему то возвращает 0 записей :( | |
|
|
|
|
|
|
|
для: tima2010
(21.10.2011 в 12:47)
| | а скидка же "от" лимита или "до"? я предложил вариант "от" | |
|
|
|
|
|
|
|
для: Lotanaen
(21.10.2011 в 12:50)
| | получается
если у пользователя сумма покупок больше или равна лимиту то ему дается скидка присвоенная к этому лимиту | |
|
|
|
|
|
|
|
для: tima2010
(21.10.2011 в 12:51)
| | ну так я и предложил - там только в запросе поле лимит нужно в обратные кавычки взять : `limit` | |
|
|
|
|
|
|
|
для: Lotanaen
(21.10.2011 в 12:53)
| | Так заработало, почему пока что не понял...
WHERE (limit >= '$mymoney') ORDER BY `limit` DESC LIMIT 1"
|
| |
|
|
|
|
|
|
|
для: tima2010
(21.10.2011 в 13:16)
| | так условие скидок не будет соответствовать вашим условия
а разве так не работает :
SELECT `limit`, `discont` FROM ".$mydiscontdb." WHERE `limit`<='$mymoney' ORDER BY `limit` DESC limit 1
|
| |
|
|
|
|
|
|
|
для: Lotanaen
(21.10.2011 в 13:20)
| | Да вы правы, условие не верное в моем варианте
Ваш вариант заработал! До этого почему не работал не понял, видимо где то допустил синтаксическую ошибку.
Большое спасибо! запомню возможность выставления условий прямо в запросе. | |
|
|
|
|
|
|
|
для: tima2010
(21.10.2011 в 13:24)
| | >Ваш вариант заработал! До этого почему не работал не понял, видимо где то допустил синтаксическую ошибку.
я же выше писал вам что в обратные кавычки нужно взять поле лимит в запросе... | |
|
|
|