Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Арифметические операторы
 
 автор: ADmexture   (12.08.2005 в 23:45)   письмо автору
 
 

Добрый вечер!

У меня есть форма, в которой есть поле all_money (все деньги на счету), и
поле godovye (18% годовых).

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

Если кто,что знает как умножить на 18% помогите пожалуйста.

$all_money = $_REQUEST['all_money'];
$godovye = '18%';//???ВОТ ЗДЕСЬ ТРАБЛА???

$get = $all_money * $godovye;

print("$get");

   
 
 автор: cheops   (12.08.2005 в 23:53)   письмо автору
 
   для: 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");
?>

   
 
 автор: ADmexture   (13.08.2005 в 00:05)   письмо автору
 
   для: cheops   (12.08.2005 в 23:53)
 

Хм..., почемуто print("$get") - выдает нуль. Хотя переменные $all_money не равно нулю!!!

   
 
 автор: cheops   (13.08.2005 в 00:14)   письмо автору
 
   для: 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"); 
?>

   
 
 автор: Гость   (13.08.2005 в 06:28)   письмо автору
 
   для: cheops   (13.08.2005 в 00:14)
 

А почему не сделать так:
<?php 
  $all_money 
10
  
$godovye 18;
  
$get $all_money  100 $godovye
  print(
"$get"); 
?>

   
 
 автор: ADmexture   (13.08.2005 в 11:03)   письмо автору
 
   для: Гость   (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, а именно строка Годовые, работает только с первой цифрой, и процент считает только с нее, а не от всей суммы :((((, почему так?

   
 
 автор: cheops   (13.08.2005 в 12:06)   письмо автору
 
   для: 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

   
 
 автор: ADmexture   (13.08.2005 в 12:26)   письмо автору
 
   для: cheops   (13.08.2005 в 12:06)
 

Ну да, слагается.

Допустим если я кладу на счет 46, и к этим 46 прибавляется 2, и денег на счету должно быть 48, а он выводит цифрй 4, и процент считает по цифре 4
Если я положу 48, то + 2 =50, он выводит цифру 5 :(((

В чем я ошибся, или если я переведу в тип DEcimal, токого не будет?

   
 
 автор: cheops   (13.08.2005 в 12:33)   письмо автору
 
   для: ADmexture   (13.08.2005 в 12:26)
 

Перед строчками
<?php
    
//Денег на счету 
    
$all_money[1] = $all_money $put_money;
?>

выведите содержимое переменных $all_money и $put_money - что в них? В $put_money уже одна цифра? Или после сложения одна цифра получается?

   
 
 автор: ADmexture   (13.08.2005 в 12:38)   письмо автору
 
   для: cheops   (13.08.2005 в 12:33)
 

ОК, вывел

$all_money - 2
$put_money - 1

   
 
 автор: cheops   (13.08.2005 в 12:44)   письмо автору
 
   для: ADmexture   (13.08.2005 в 12:38)
 

Не густо... а должно быть сколько?

   
 
 автор: cheops   (13.08.2005 в 12:35)   письмо автору
 
   для: ADmexture   (13.08.2005 в 12:26)
 

>В чем я ошибся, или если я переведу в тип DEcimal, токого не
>будет?
Пока сложно сказать - это зависит от того, в каком виде сейчас хранятся цифры - у вас имеется phpMyAdmin или любой другой клиент - посмотрите - нет ли чего подозрительного в полях, где хранятся деньги?

   
 
 автор: ADmexture   (13.08.2005 в 12:52)   письмо автору
 
   для: cheops   (13.08.2005 в 12:35)
 

Все вроде бы исправил, спасибо.

Я поменял имя $all_money[1] на другое и все заработало!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования