Maybe this is a simple tip, but I lost many hours to find it.
I wanted to list the content of Postgres’ table and show some calculate at top
of the list without recalculate.
My solution is:
1) Put INPUT boxes before the table for data
2) Get, calculate and listen data
3) Assign PHP var to INPUT boxes
<?
/* 1. Define a INPUT boxes to show calculate */
<TABLE>
<TD> Total de Reportes: $rt <INPUT TYPE="text" NAME="RT" SIZE=3></TD>
<TD> Cerrados: <INPUT TYPE="text" NAME="RC" SIZE=3></TD>
<TD> Abiertos: <INPUT TYPE="text" NAME="RA" SIZE=3></TD>
</TABLE>
/* 2.1 Get data from Postgres' table */
$sql="SELECT oid,* FROM reportes ";
if (($AUDITORIA) and ($AUDITORIA!="all")) {$sql.=" WHERE id_auditoria='$AUDITORIA' ";}
$sql.=" ORDER BY id_auditoria,id_rnc;";
$result_set=pg_Exec($conn,$sql);
$rows=pg_NumRows($result_set);
/* List and Calcule */
if((!$result_set)||($rows<1)):
echo "Don't have reports </H>
";
else:
echo "<TABLE BORDER=1>
<TH>Audit</TH><TH>No. Report</TH><TH>Area</TH>
<TH>Emision</TH><TH>Closed</TH>";
$ra=$rc=0; /* Put counter to 0 */
for($j=0;$j<$rows;$j++):
$id = pg_result($result_set,$j,"oid");
$cierre = pg_result($result_set,$j,"f_cierre");
if ($cierre): $rc++; else: $ra++; endif; /* Calcule */
$v_auditoria = pg_result($result_set,$j,"id_auditoria");
echo "<TR><TD width=80><FONT size=2><a href=acp03.php?name=$id>".
$v_auditoria. "</a></FONT></TD>";
echo "<TD width=200><FONT size=2>" . pg_result($result_set,$j,"id_rnc") . "</FONT></TD>";
echo "<TD width=60><FONT size=2>" . pg_result($result_set,$j,"area") . "</FONT></TD>";
echo "<TD><FONT size=2>" . pg_result($result_set,$j,"f_compromiso") . "</FONT></TD>";
echo "<TD align=center><FONT size=2>".$cierre."</FONT></TD></TR>";
endfor;
echo "</TABLE>";
endif;
$rt=$ra+$rc;
?>
/* 3. Assign PHP variables to INPUT boxes */
<SCRIPT LANGUAJE="JAVASCRIPT">
<? echo "RT.value = $rt;";
echo "RA.value = $ra;";
echo "RC.value = $rc;"; ?>
</SCRIPT>