|
|
|
| Здравствуйте,
существует расчетная таблица, код которой хотелось бы упростить(сделать более компактным), вобщем-то она работает и так, но как-то это не правильно по моему...
//Вводим данные
<table class='body'>
<tr><td>1 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut01 ></td></tr>
<tr><td>2 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut02 ></td></tr>
<tr><td>3 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut03 ></td></tr>
//Расчет
<?php
$pdr01=$Pmin+($Pmax-$Pmin)*($sut01/$Qmax);
$pdr02=$Pmin+($Pmax-$Pmin)*($sut02/$Qmax);
$pdr03=$Pmin+($Pmax-$Pmin)*($sut03/$Qmax);
//Выводим данные
print "<table align=center>
<tr><td>$sut01</td> <<td> $pdr01</td> </tr>
<tr><td>$sut02</td> <td> $pdr02</td></tr>
<tr><td>$sut03</td> <td> $pdr03</td> </tr>
</table>
";
|
...переменных 24, код получается очень раздутым | |
|
|
|
|
|
|
|
для: Peter
(08.08.2005 в 13:44)
| | Следует оформить выражение
<?php
$pdr01=$Pmin+($Pmax-$Pmin)*($sut01/$Qmax);
?>
|
в виде функции
<?php
$pdr01 = calc_value($sut01);
?>
|
а затем организовать цикл
<?php
for(...)
$pdr[$i] = calc_value($sut[$i]);
?>
|
Я бы в этом направлении двигался... | |
|
|
|
|
|
|
|
для: Peter
(08.08.2005 в 13:44)
| |
//Вводим данные
<table class='body'>
<tr><td>1 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut01 ></td></tr>
<tr><td>2 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut02 ></td></tr>
<tr><td>3 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut03 ></td></tr>
//Расчет
//Используем массивы sut[] и $pdr[]
<?php
$pdr[0]=$Pmin+($Pmax-$Pmin)*($sut[0]/$Qmax);
$pdr[1]=$Pmin+($Pmax-$Pmin)*($sut[1]/$Qmax);
$pdr[2]=$Pmin+($Pmax-$Pmin)*($sut[2]/$Qmax);
//Выводим данные
echo "<table align=center> ";
for($i=0; $i<count($pdr);$i++)
{
echo "<tr><td>$sut[".$i."]</td> <<td> $pdr[".$i."]</td> </tr>";
}
echo"</table> ";
|
| |
|
|
|
|
|
|
|
для: cernos
(08.08.2005 в 13:53)
| | to cheops: для меня слишком сложно, нужно разжевать...
to cernos: не работает, выдает ошибку в этой строке
echo "<tr><td>$sut[".$i."]</td> <td> $pdr[".$i."]</td></tr>";
ругается на кавычки. | |
|
|
|
|
|
|
|
для: Peter
(08.08.2005 в 15:39)
| | Вариант cernos можно преобразовать следующим образом
<table class='body'>
<tr><td>1 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut[1] ></td></tr>
<tr><td>2 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut[2] ></td></tr>
<tr><td>3 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut[3] ></td></tr>
//Расчет
//Используем массивы sut[] и $pdr[]
<?php
for($i = 0; $i < count($sut); $i++)
{
$pdr[$i]=$Pmin+($Pmax-$Pmin)*($_POST['sut'][$i]/$Qmax);
}
//Выводим данные
echo "<table align=center> ";
for($i=0; $i<count($pdr);$i++)
{
echo "<tr><td>$sut[$i]</td> <<td> $pdr[$i]</td> </tr>";
}
echo"</table> ";
|
| |
|
|
|
|
|
|
|
для: cheops
(08.08.2005 в 18:48)
| | хм... ничего не происходит вообще, таблица с результатами не видна | |
|
|
|
|
|
|
|
для: Peter
(09.08.2005 в 10:11)
| | А у вас данные в форме передаются методом POST? Попробуйте вывести его содержимое - там, что-нибудь есть
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.08.2005 в 11:45)
| | да, введенные переменные отображаются | |
|
|
|
|
|
|
|
для: Peter
(09.08.2005 в 12:06)
| | Теперь после первого цикла попробуйте вывести массив $pdr, а сам скрипт исправьте следующим образом
<table class='body'>
<tr><td>1 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut[1] ></td></tr>
<tr><td>2 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut[2] ></td></tr>
<tr><td>3 час: Q м<sub>3</sub>/ч</td><td><input type=text name=sut[3] ></td></tr>
//Расчет
//Используем массивы sut[] и $pdr[]
<?php
for($i = 0; $i < count($_POST['sut']); $i++)
{
$pdr[$i]=$Pmin+($Pmax-$Pmin)*($_POST['sut'][$i]/$Qmax);
}
echo "<pre>";
print_r($pdr);
echo "</pre>";
//Выводим данные
echo "<table align=center> ";
for($i=0; $i<count($pdr);$i++)
{
echo "<tr><td>".$sut[$i]."</td> <<td> ".$pdr[$i]."</td> </tr>";
}
echo"</table> ";
|
| |
|
|
|
|
|
|
|
для: cheops
(08.08.2005 в 18:48)
| | нашел свою ошибку, массив забыл сделать...
но, все равно в таблице выводиться только переменная $pdr, а $sut - нет, и $pdr = только $Pmin, расчета не происходит. | |
|
|
|
|
|
|
|
для: Peter
(09.08.2005 в 12:25)
| | воо... исправил еще пару ошибок и всё заработало, надо было, кстати, $i=1 сделать.
теперь все считается, но в таблице всегда на одну строку меньше чем нужно, расчет по последниму параметру не выводится, в чем дело? | |
|
|
|
|
|
|
|
для: Peter
(09.08.2005 в 14:07)
| | >воо... исправил еще пару ошибок и всё заработало, надо было,
>кстати, $i=1 сделать.
>теперь все считается, но в таблице всегда на одну строку
>меньше чем нужно, расчет по последниму параметру не
>выводится, в чем дело?
Вообще индексы в массивах в PHP начинаются с 0, именно поэтому было введено $i=0 и возможно поэтому не хватает одного элемента в таблице. | |
|
|
|
|
|
|
|
для: cernos
(08.08.2005 в 13:53)
| | ok, с таблицей расчетов разобрался, теперь мне надо результаты как-то отобразить в виде графика. Нашел в сети скрипт графика, как мне сделать так, чтоб результаты расчетов передавались туда, а потом этот скрипт появлялся в виде картинки на странице с таблицей? | |
|
|
|