делаю обработчик после оплаты услуг
if (!empty($res['serf']))
{
$sql_serf = $mysqli->query("SELECT `top`,`redirect`,`time`,`plan` FROM ".DB_PREFIX."_serf WHERE `active`='0' AND `id` IN (".$res['serf'].")");
$serf_pay = 0;
while($row = mysqli_fetch_assoc($sql_serf))
{
if ($row['time'] == 20) $forpay_serf = $serf_price['t_20'] * $row['plan'];
if ($row['time'] == 30) $forpay_serf = $serf_price['t_30'] * $row['plan'];
if ($row['top'] == 1) $forpay_serf = $forpay_serf + $serf_ptop;
if ($row['redirect'] == 1) $forpay_serf = $forpay_serf + $serf_loc;
$serf_pay = $serf_pay + $forpay_serf;
}
$to_sale = ($serf_sale == 1) ? (($serf_pay / 100) * $discount) : 0;
$to_pay = ($serf_sale == 1) ? ($serf_pay -(($serf_pay / 100) * $discount)) : $serf_pay;
}
if (!empty($res['autoserf']))
{
$sql_autoserf = $mysqli->query("SELECT `time`,`plan` FROM ".DB_PREFIX."_autoserf WHERE `active`='0' AND `id` IN (".$res['autoserf'].")");
$autoserf_pay = 0;
while($row = mysqli_fetch_assoc($sql_autoserf))
{
if ($row['time'] == 20) $forpay_autoserf = $autoserf_price['t_20'] * $row['plan'];
if ($row['time'] == 30) $forpay_autoserf = $autoserf_price['t_30'] * $row['plan'];
$autoserf_pay = $autoserf_pay + $forpay_autoserf;
}
$to_sale = $to_sale + ($autoserf_sale == 1) ? (($autoserf_pay / 100) * $discount) : 0;
$to_pay = $to_pay + ($autoserf_sale == 1) ? ($autoserf_pay -(($autoserf_pay / 100) * $discount)) : $autoserf_pay;
}
if (!empty($res['task']))
{
$sql_task = $mysqli->query("SELECT `plan`,`price`,`top` FROM ".DB_PREFIX."_tasks WHERE `active`='0' AND `id` IN (".$res['task'].")");
$task_pay = 0;
while($row = mysqli_fetch_assoc($sql_task))
{
$forpay_task = ($row['top'] == 1) ? ((($row['price'] * (1 + $task_commision / 100)) * $row['plan']) + $task_ptop) : (($row['price'] * (1 + $task_commision / 100)) * $row['plan']);
$task_pay = $task_pay + $forpay_task;
}
$to_sale = $to_sale + ($task_sale == 1) ? (($task_pay / 100) * $discount) : 0;
$to_pay = $to_pay + ($task_sale == 1) ? ($task_pay -(($task_pay / 100) * $discount)) : $task_pay;
}
if (!empty($res['download']))
{
$sql_downloads = $mysqli->query("SELECT `plan`,`price`,`top` FROM ".DB_PREFIX."_downloads WHERE `active`='0' AND `id` IN (".$res['download'].")");
$download_pay = 0;
while($row = mysqli_fetch_assoc($sql_downloads))
{
$forpay_download = ($row['top'] == 1) ? ((($row['price'] * (1 + $download_commision / 100)) * $row['plan']) + $download_ptop) : (($row['price'] * (1 + $download_commision / 100)) * $row['plan']);
$download_pay = $download_pay + $forpay_download;
}
$to_sale = $to_sale + ($download_sale == 1) ? (($download_pay / 100) * $discount) : 0;
$to_pay = $to_pay + ($download_sale == 1) ? ($download_pay -(($download_pay / 100) * $discount)) : $download_pay;
$service[] = 'download';
}
if (!empty($res['context']))
{
$sql_context = $mysqli->query("SELECT `plan` FROM ".DB_PREFIX."_ads_context WHERE `active`='0' AND `id` IN (".$res['context'].")");
$context_pay = 0;
while($row = mysqli_fetch_assoc($sql_context))
{
$context_pay = $context_pay + ($context_price * $row['plan']);
}
$to_sale = $to_sale + ($context_sale == 1) ? (($context_pay / 100) * $discount) : 0;
$to_pay = $to_pay + ($context_sale == 1) ? ($context_pay -(($context_pay / 100) * $discount)) : $context_pay;
}
if (!empty($res['banner']))
{
$sql_banners = $mysqli->query("SELECT `type`,`plan` FROM ".DB_PREFIX."_banners WHERE `active`='0' AND `id` IN (".$res['banner'].")");
$banner_pay = 0;
while($row = mysqli_fetch_assoc($sql_banners))
{
$forpay_banner = $bann_price * $row['plan'];
if ($row['type'] == 200)
{
$forpay_banner = $forpay_banner * $bann_p_200;
}
else if ($row['type'] == 468)
{
$forpay_banner = $forpay_banner * $bann_p_468;
}
$banner_pay = $banner_pay + $forpay_banner;
}
$to_sale = $to_sale + ($bann_sale == 1) ? (($banner_pay / 100) * $discount) : 0;
$to_pay = $to_pay + ($bann_sale == 1) ? ($banner_pay -(($banner_pay / 100) * $discount)) : $banner_pay;
}
вот не понимаю почему $to_sale и $to_pay берется только последний и не считается с верху в низ ?
Спустя 1 час, 16 минут (16.01.2012 - 01:59) inpost написал(а):
okapo
8 месяцев, где стиль? Ты считаешь, что удобно такой кодо-бред читать? Оформи всё по фен-шую, самому приятнее будет, и другие смогут оценить.
8 месяцев, где стиль? Ты считаешь, что удобно такой кодо-бред читать? Оформи всё по фен-шую, самому приятнее будет, и другие смогут оценить.
Спустя 24 минуты, 34 секунды (16.01.2012 - 02:24) okapo написал(а):
Вот поправил чуть чуть
Спустя 2 минуты, 12 секунд (16.01.2012 - 02:26) Winston написал(а):
Этот код можно неплохо сократить.
Спустя 1 минута, 42 секунды (16.01.2012 - 02:28) inpost написал(а):
Потому что он выполняется ПОСЛЕ цикла, а значит с последними данными. Если я правильно тебя понял, то надо его "берётся" поместить внутрь цикла. Ты же переменную постоянно переписываешь циклом!
А вообще, надо показывать тот участок кода, где глюк. А у тебя столько условий, каждый связан со своей процедурой, а откуда всё берётся - непонятно. В любом случае ответ выше я дал.
А вообще, надо показывать тот участок кода, где глюк. А у тебя столько условий, каждый связан со своей процедурой, а откуда всё берётся - непонятно. В любом случае ответ выше я дал.
Спустя 25 минут, 23 секунды (16.01.2012 - 02:53) okapo написал(а):
в цикле идет калькулятор и считается услуга
после цикла добавляем сумму к общей суммы так и для скидки
ошибки вроде нету так как я чуть ниже вытаскиваю сумму всех услуг и она в норме все а проблема в to_pay и to_sale они берутся только с $banner_pay (последняя услуга)
Winston ну как еще сократить я уже старался, пару раз переписывал для сокращения
после цикла добавляем сумму к общей суммы так и для скидки
ошибки вроде нету так как я чуть ниже вытаскиваю сумму всех услуг и она в норме все а проблема в to_pay и to_sale они берутся только с $banner_pay (последняя услуга)
Winston ну как еще сократить я уже старался, пару раз переписывал для сокращения
Спустя 1 день, 49 минут, 51 секунда (17.01.2012 - 03:43) okapo написал(а):
ну кто нибуть ? помогите пожалуйста не могу розабратся в чем проблема
Спустя 5 часов, 9 минут, 57 секунд (17.01.2012 - 08:53) alexbel2404 написал(а):
$sql_serf = $mysqli->query("SELECT `top`,`redirect`,`time`,`plan` FROM ".DB_PREFIX."_serf WHERE `active`='0' AND `id` IN (".$res['serf'].")");
$serf_pay = 0;
while($row = mysqli_fetch_assoc($sql_serf))
что за бред?) сначала объектный стиль, потом процедурный)