|
|
|
| Добрый вечер!
У меня есть форма, в которой есть поле all_money (все деньги на счету), и
поле godovye (18% годовых).
идея такова, чтобы при нажатии на кнопку отправить, код подсчитывал проценты
годовых от всей суммы на счете.
Если кто,что знает как умножить на 18% помогите пожалуйста.
$all_money = $_REQUEST['all_money'];
$godovye = '18%';//???ВОТ ЗДЕСЬ ТРАБЛА???
$get = $all_money * $godovye;
print("$get");
|
| |
|
|
|
|
|
|
|
для: ADmexture
(12.08.2005 в 23:45)
| | Следует привести к числовому типу $godovye, т.е. переписать скрипт следующим образом
<?php
$all_money = $_REQUEST['all_money'];
$godovye = '18%';//???ВОТ ЗДЕСЬ ТРАБЛА???
$godovye = '18%' + 0;
$get = $all_money * $godovye / 100;
print("$get");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(12.08.2005 в 23:53)
| | Хм..., почемуто print("$get") - выдает нуль. Хотя переменные $all_money не равно нулю!!! | |
|
|
|
|
|
|
|
для: ADmexture
(13.08.2005 в 00:05)
| | Это означает, что один из множителей равен нулю (т.е. $_REQUEST['all_money'), например, скрипт, уже не даст 0, а даст 1.8.
<?php
$all_money = 10; //$_REQUEST['all_money'];
$godovye = '18%';//???ВОТ ЗДЕСЬ ТРАБЛА???
$godovye = '18%' + 0;
$get = $all_money * $godovye / 100;
print("$get");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(13.08.2005 в 00:14)
| | А почему не сделать так:
<?php
$all_money = 10;
$godovye = 18;
$get = $all_money / 100 * $godovye;
print("$get");
?>
|
| |
|
|
|
|
|
|
|
для: Гость
(13.08.2005 в 06:28)
| | Код работает, но вот какая бяка.
Я создал таблицу в mysql:
Create table smoney(
putmoney text not null,
all_money text,
godovye text,
moneyyear text,
moneymonth text
);
insert into smoney value ('1','2','3','4','5');
|
файл config:
<?php
$dblocation = 'localhost';
$dbname = 'money';
$dbuser = 'root';
$dbpasswd = '';
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.".mysql_error()."</P>" );
exit();
}
if (! @mysql_select_db($dbname,$dbcnx) )
{
echo( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
?>
|
есть код который выводит значения из базы:
<?php
require_once("config.php");
$query = "Select * from smoney";
$cat = mysql_query($query);
if(!$cat)
{
$error = mysql_error();
echo "Ошибка! $error";
}
$catalog = mysql_fetch_array($cat);
$put_money = $catalog['putmoney'];
$all_money = $catalog['allmoney'];
$godovye = $catalog['godovye'];
$money_year = $catalog['moneyyear'];
$money_month = $catalog['moneymonth'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Проект ::ГОДОВЫЕ::</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="css_money.css" rel="stylesheet" type="text/css">
</head>
<body>
<form action="edit.php" method="post">
<table width="400" border="0" align="center" class="textgrey">
<tr>
<td colspan="2" class="textgreybold">Рассчеты</td>
</tr>
<tr>
<td width="50%">Последний вклад:</td>
<td width="50%"><input name="put_money" type="text" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$put_money"); ?>></td>
</tr>
<tr>
<td><p>Денег на счету:</p>
</td>
<td><input name="all_money" type="text" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$all_money"); ?>></td>
</tr>
<tr>
<td>Изменить % годовых:</td>
<td><input name="godovye" type="text" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$godovye"); ?>></td>
</tr>
<tr>
<td>% от общей суммы (в год):</td>
<td><input name="money_year" type="text" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$money_year"); ?>></td>
</tr>
<tr>
<td>Забарть денег (в месяц):</td>
<td><input name="money_month" type="text" class="textgrey" dir="ltr" lang="ru" size="30" maxlength="30" value=<?php print("$money_month"); ?>></td>
</tr>
<tr>
<td colspan="2" align="center">
<br>
<input type="submit" value="Подсчитать" class="textgreybold"></td>
</tr>
</table>
</form>
</body>
</html>
|
файл edit.php
<?php
print('<link href="css_money.css" rel="stylesheet" type="text/css">');
require_once("config.php");
$put_money = $_REQUEST['put_money'];
$all_money = $_REQUEST['all_money'];
$godovye = $_REQUEST['godovye'];
$money_year = $_REQUEST['money_year'];
$money_month = $_REQUEST['money_month'];
//Вклады
print ("<p class='textgrey' align='center'>Вы положили на счет - $put_money</p>");
//Денег на счету
$all_money[1] = $all_money + $put_money;
print ("<p class='textgrey' align='center'>Теперь денег на счету - $all_money[1]</p>");
//Годовые
$arll_money = $all_money[1];
$godovye = 18;
$get = $arll_money / 100 * $godovye;
print("<p class='textgrey' align='center'>% годовых составил - $get в год</p>");
//…
?>
|
Проценты он считает, но вот в чем трабла, при введении в строку put_money числа, допустим 65800, скрипт edit.php, а именно строка Годовые, работает только с первой цифрой, и процент считает только с нее, а не от всей суммы :((((, почему так? | |
|
|
|
|
|
|
|
для: ADmexture
(13.08.2005 в 11:03)
| | Хм... но у вас же $put_money слагается с $all_money и процент вычисляется от суммы - почему думаете, что он берёт только первую цифру?
PS А у вас запятой или пробелом разряды не разделены? Зря вы деньги в text храните, для того предназначен специальный тип DECIMAL, который также хранит деньги в тектовом виде, но не позволяет проникать всякой бяке (т.е. к значению относится как к числу и позволяет складывать числа) и позволяет точно задать число значащих знаков после запятой http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=2574 | |
|
|
|
|
|
|
|
для: cheops
(13.08.2005 в 12:06)
| | Ну да, слагается.
Допустим если я кладу на счет 46, и к этим 46 прибавляется 2, и денег на счету должно быть 48, а он выводит цифрй 4, и процент считает по цифре 4
Если я положу 48, то + 2 =50, он выводит цифру 5 :(((
В чем я ошибся, или если я переведу в тип DEcimal, токого не будет? | |
|
|
|
|
|
|
|
для: ADmexture
(13.08.2005 в 12:26)
| | Перед строчками
<?php
//Денег на счету
$all_money[1] = $all_money + $put_money;
?>
|
выведите содержимое переменных $all_money и $put_money - что в них? В $put_money уже одна цифра? Или после сложения одна цифра получается? | |
|
|
|
|
|
|
|
для: cheops
(13.08.2005 в 12:33)
| | ОК, вывел
$all_money - 2
$put_money - 1 | |
|
|
|
|
|
|
|
для: ADmexture
(13.08.2005 в 12:38)
| | Не густо... а должно быть сколько? | |
|
|
|
|
|
|
|
для: ADmexture
(13.08.2005 в 12:26)
| | >В чем я ошибся, или если я переведу в тип DEcimal, токого не
>будет?
Пока сложно сказать - это зависит от того, в каком виде сейчас хранятся цифры - у вас имеется phpMyAdmin или любой другой клиент - посмотрите - нет ли чего подозрительного в полях, где хранятся деньги? | |
|
|
|
|
|
|
|
для: cheops
(13.08.2005 в 12:35)
| | Все вроде бы исправил, спасибо.
Я поменял имя $all_money[1] на другое и все заработало! | |
|
|
|