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>