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

Форум PHP

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

 

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

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

тема: Помогите с калькуляцией
 
 автор: LuxeMate   (16.09.2006 в 16:21)   письмо автору
 
 

вобщем не могу понять как заставить это работать


<?php
$a 
10;
$b "-";
$c 4;
$sum $a $b $c;
echo (
$sum);
?>


когда $sum = $a - $c; всё ок,но когда я добавляю 3 переменную ничего не выходит,в чём дело?
Заранее спасибо!

   
 
 автор: LuxeMate   (16.09.2006 в 16:23)   письмо автору
 
   для: LuxeMate   (16.09.2006 в 16:21)
 

это обьяснение я применю здесь


<html>
<head>
<title>Калькулятор</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
<form name="calc" action="calc.php" method="post">
<table cellpadding="5" cellspacing="5" id="calctable">
<tr>
<td><input type="text" name="x"/></td>
<td><select name="what">
<option multiple value="+">плюс
<option multiple value="-">минус
<option multiple value="*">умножить на
<option multiple value="/">разделить на
</select></td>
<td><input type="text" name="y"/></td>
<td><input type="submit" name="submit" value="="></td>
<td>
<?php 
$total 
$x $what $y;
echo (
$total);
?>
</td>
</table>
</form>
</body>
</html>

   
 
 автор: Ursus   (16.09.2006 в 17:28)   письмо автору
 
   для: LuxeMate   (16.09.2006 в 16:23)
 


switch($what)
{
case"+":
  $total=$a+$b;
  break;
case"-":
  $total=$a-$b;
  break;
case"*":
  $total=$a*$b;
  break;
case"/":
  $total=$a/$b;
  break;
}

Только подсчет надо выполнять в calc.php

   
 
 автор: Киналь   (16.09.2006 в 16:25)   письмо автору
 
   для: LuxeMate   (16.09.2006 в 16:21)
 

Ну так вы складываете апельсины с выключателями=) $b - однозначно строковая переменная, и как знак минуса не интерпретируется. У вас получается вот что:

$sum = $a "-" $b

По идее, кстати, должен вылезти warning.

   
 
 автор: LuxeMate   (16.09.2006 в 16:37)   письмо автору
 
   для: Киналь   (16.09.2006 в 16:25)
 

ну я что то в этом роде претпологал,но как это исправить меня это больше волнует!

   
 
 автор: New   (16.09.2006 в 17:29)   письмо автору
 
   для: LuxeMate   (16.09.2006 в 16:21)
 


<?php
$op1 
$_GET['op'];
$math "-";
$op2 $_GET['op2'];
$op1+= $math.$c;
echo 
$op1;
?> 

   
 
 автор: LuxeMate   (16.09.2006 в 17:43)   письмо автору
 
   для: New   (16.09.2006 в 17:29)
 

New а по проще никак?Или хотя бы поясните свой код,а то я вобще ничего не понял.

   
 
 автор: TXC   (16.09.2006 в 17:44)   письмо автору
 
   для: New   (16.09.2006 в 17:29)
 

> $op1+= $math.$c;

Только тогда по Вашей структуре тут будет:

$op1+= $math.$_GET['op2'];

---------------------------------------
> а по проще никак?Или хотя бы поясните свой код,а то я вобще ничего не понял.

<?php
// Получаем первое слогаемое (из формы, венроятно)
$op1 = $_GET['op'];
// Создаем строковую переменную со знаком минуса
$math = "-";
// Получаем второе слогаемое (как и в первом случае)
$op2 = $_GET['op2'];
// Прибавляем к первому слогаемому вторую переменную, предваренную строковым знаком
// вычитания, => число с отрицательным значением
$op1+= $math.$_GET['op2'];
// Вывод результата в браузер
echo $op1;
?>

   
 
 автор: LuxeMate   (16.09.2006 в 17:58)   письмо автору
 
   для: TXC   (16.09.2006 в 17:44)
 

Эх незнаю проще так или нет но по мне проще так

<html>
<head>
<title>Калькулятор</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
<form name="calc" action="calc.php" method="post">
<table cellpadding="5" cellspacing="5" id="calctable">
<tr>
<td><input type="text" name="x"/></td>
<td><select name="what">
<option multiple value="+">плюс
<option multiple value="-">минус
<option multiple value="*">умножить на
<option multiple value="/">разделить на
</select></td>
<td><input type="text" name="y"/></td>
<td><input type="submit" name="submit" value="="></td>
<td>
<?php
if($what == "+")
{
$total $x+$y;
}
if(
$what == "-")
{
$total $x-$y;
}
if(
$what == "*")
{
$total $x*$y;
}
if(
$what == "/")
{
$total $x/$y;
}
echo (
$total);
?>
</td>
</table>
</form>
</body>
</html>


спасибо всем за поданые мне идеи :)

   
 
 автор: Ursus   (16.09.2006 в 18:02)   письмо автору
 
   для: LuxeMate   (16.09.2006 в 17:58)
 

Повторюсь. Все же лучше через switch это делать. И в другом сценарии, а то работать не будет.

   
 
 автор: LuxeMate   (16.09.2006 в 18:08)   письмо автору
 
   для: Ursus   (16.09.2006 в 18:02)
 

Ты конечно извени,но чей код у меня не работал так это твой,а впрочем у меня неработал не один код кроме моего! :D

   
 
 автор: Ursus   (16.09.2006 в 18:18)   письмо автору
 
   для: LuxeMate   (16.09.2006 в 18:08)
 

Просто у тебя в этом сценарии ни одна из переменных не будет определенна. PHP - это не JavaScript. Тебе надо сначала передать данные в calc.php. А в нем уже все считать и выводить в браузер.


<html> 
<head> 
<title>Калькулятор</title> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> 
</head> 

<body> 
<form name="calc" action="calc.php" method="post"> 
<table cellpadding="5" cellspacing="5" id="calctable"> 
<tr> 
<td><input type="text" name="x"/></td> 
<td><select name="what"> 
<option value="+">плюс 
<option value="-">минус 
<option value="*">умножить на 
<option value="/">разделить на 
</select></td> 
<td><input type="text" name="y"/></td> 
<td><input type="submit" name="submit" value="="></td> 
</table> 
</form> 
</body> 
</html> 

и calc.php

$a=$_POST['a'];
$b=$_POST['b'];
switch($_POST['what']) 

case"+": 
  $total=$a+$b; 
  break; 
case"-": 
  $total=$a-$b; 
  break; 
case"*": 
  $total=$a*$b; 
  break; 
case"/": 
  $total=$a/$b; 
  break; 

echo $total;

Еще атрибут multiple убери. Он для тега SELECT. И в данном случае тебе не нужен.

   
 
 автор: LuxeMate   (16.09.2006 в 18:31)   письмо автору
 
   для: Ursus   (16.09.2006 в 18:18)
 

Весь фокус в том что у меня всё в одном фаиле,меньше всего мне нужен этот по файловый перевод,незнаю почему но твой скрипт всё время выдаёт 0 :(

   
 
 автор: Ursus   (16.09.2006 в 18:40)   письмо автору
 
   для: LuxeMate   (16.09.2006 в 18:31)
 

упс. Переменные не так назвал. Исправь в calc.php

$a=$_POST['x']; 
$b=$_POST['y']; 

P.S.:Лично мне кажется, тебе надо было здесь JavaScript использывать, а не PHP

   
 
 автор: LuxeMate   (16.09.2006 в 18:43)   письмо автору
 
   для: Ursus   (16.09.2006 в 18:40)
 

>P.S.:Лично мне кажется, тебе надо было здесь JavaScript использывать, а не PHP

Чтобы использовать JS надо его знать,пока же как видиш я и PHP толком не знаю,но спасибо за совет ;)

   
 
 автор: LuxeMate   (16.09.2006 в 18:39)   письмо автору
 
   для: Ursus   (16.09.2006 в 18:18)
 

>Просто у тебя в этом сценарии ни одна из переменных не будет определенна. PHP - это не JavaScript. Тебе >надо сначала передать данные в calc.php. А в нем уже все считать и выводить в браузер.

С какой такой радости?

<form name="calc" action="calc.php" method="post">

Указывает сам на себя,принемает значения переменных и там же их обрабатывает...

   
Rambler's Top100
вверх

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