[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: почему то не производит расчеты
kyler
Помогите, пожалуйста разобраться!!! Необходимо просто произвести расчеты и вывести результат. Не знаю в чем ошибка, почему то не работает.
calc.php
<body>
<
form method="get" action="calcaction.php">
<
p align="left">введите стаж<br />
<
input type="text" name="Str" /><br />
Введите зарплату за 2000-2001 <br />
<
input type="text" name="zp" /><br />
введите среднюю зарплату<br />
<
input type="text" name="szp" /></p>
<
p align="left">выберите год<br />
<
br />
<
select name="T">
<
option value="144">01.01.2002</option>
<
option value="150">01.01.2003</option>
<
option value="156">01.01.2004</option>
<
option value="162">01.01.2005</option>
</
select> </p>

<
input type="submit" name="op" value="рассчитать" />
</
form>
<
p align="left">Выполнено: <b><?php include('ans.html'); ?></b></div>


calcaction.php
<?php
$Str = $_GET['Str'];
$zp = $_GET['zp'];
$szp = $_GET['szp'];
$op = $_GET['op'];
$bch = 1794;
$sk = 0.55;
$StrStaj=$sk+(($Str-20)*0.01);
if ($Str<20){$StrStaj=0.55;}
if($Str>75){$StrStaj=0.75;}
$z=$zp/$szp;
if ($z>1.2) $z=1.2;
$rp=$StrStaj*$z*1671;
if ($rp<660) $rp=660;
$pk=($rp-$bch)*$T;
if ( $op == "Рассчитать" )
{
$filename = 'ans.html';
$answare = ($bch+$pk/$T);
if (is_writable($filename)) {
if (!$handle = fopen($filename, 'r+')) {
echo "Cannot open file ($filename)";
exit;
}
if (fwrite($handle, $answare) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo ('<meta http-equiv="refresh" content="0;url=calc.php" />');
fclose($handle);
} else {
echo "The file $filename is not writable";
}
}
?>
Может лишние 15 последних строк?
Почему то выводит результат всегда 1794. Подскажите, пожалуйста, в чем дело.
Файл 'ans.html' пустой для ответов



Спустя 1 час, 52 минуты, 35 секунд (5.05.2010 - 20:00) Raito-kun написал(а):
сложно что-то понять в коде, но вижу как минимум, что идут вычисления с $T, который не передан.

Спустя 43 минуты, 49 секунд (5.05.2010 - 20:44) kyler написал(а):
как же не передан? а по моему с Т все нормально

Спустя 10 минут, 23 секунды (5.05.2010 - 20:54) zarafar написал(а):
Цитата (kyler @ 5.05.2010 - 17:44)
как же не передан? а по моему с Т все нормально

Покажите пожалуйста, откуда у вас в коде берется T ?

Спустя 5 минут, 40 секунд (5.05.2010 - 21:00) zarafar написал(а):
И тут косяк:
<input type="submit" name="op" value="рассчитать" />

if ( $op == "Рассчитать" )

Спустя 23 минуты, 33 секунды (5.05.2010 - 21:23) Guest написал(а):
Цитата (zarafar @ 5.05.2010 - 17:54)
Покажите пожалуйста, откуда у вас в коде берется T ?

ну вроде бы отюда


<select name="T">
<
option value="144">01.01.2002</option> <option value="150">01.01.2003</option> <option value="156">01.01.2004</option> <option value="162">01.01.2005</option>


а что, не так? подскажите, пожалуйста как правильно, это вторая программа которую я сам пишу...
я думал что Т берется из выпадающего списка, то есть пользователь выбирает 01.01.2002 и в формуле расчитывается вместо Т 144.


Спустя 10 минут, 26 секунд (5.05.2010 - 21:34) zarafar написал(а):
Здесь вы почему то забыли про переменную T.
$Str = $_GET['Str'];
$zp = $_GET['zp'];
$szp = $_GET['szp'];
$op = $_GET['op'];

Вероятно, стоит её добавить
$T = $_GET['T'];

Спустя 6 минут, 31 секунда (5.05.2010 - 21:40) kyler написал(а):
не помогает...выдает ответ 1794 постоянно

Спустя 3 минуты, 25 секунд (5.05.2010 - 21:44) kyler написал(а):
и почему то не исчезает значение это после перезагрузки страницы, исчезает про перезагрузке компьютера

Спустя 13 минут, 29 секунд (5.05.2010 - 21:57) zarafar написал(а):
Очень тяжело читать ваш код, форматируйте его следующий раз. smile.gif

Выводите промежуточные результаты работы скрипта. С помощью того же echo. Убедитесь, что скрипт делает то что вы от него ожидаете.

Спустя 1 час, 6 минут, 58 секунд (5.05.2010 - 23:04) MatrixGod написал(а):
kyler
хороший программист получается в первую очередь из того, кто пишет код внятно для себя и для других программистов которым придется его читать.
а во вторую очередь из тех кто следует хорошим традициям, таких как писать mysql запрос большими буквами и т.д.

делайте пробел между блоками кода. например, if следует отделить от остального кода, чтоб глазам было приятней.

100% рабочий код:
<?		 	if    (  1
)
{
echo "
hello
"

;
}
?>

smile.gif

Спустя 1 час, 33 минуты, 50 секунд (6.05.2010 - 00:38) kyler написал(а):
спасибо, воспользуюсь Вашими советами насчет оформления кода
Быстрый ответ:

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