No deberías hacer esto:
Código PHP:
if ($row=pg_fetch_array($result))
para luego volver a usar
pg_fethc_array($result)
Las funciones
_fetch_ (sea de PostgreSQL o de Msyql o de lo que sea) lo que hacen es obtener el primero resultado (registro que se obtenga) y mover el puntero al siguiente resultado. Si tu tienes sólo un registro de resultado en esa consulta SQL no veras nada en tu while($row=pg_fetch_array($result)) pues ya estás en el 2° resultado (que no existe) .. o nunca veras el primero en caso de más resultados.
Como comenta
mauled debes usar pg_num_rows() para contar el n° de registros de resultado que te podría arrojar tu consulta SQL y de ahí .. si es mayor que 0 (cero) .. ejecutar tu While($row=pg_fetch_array($result)) ..
Código PHP:
$num = pg_num_rows($result);
if($num >0)
{
echo"<TABLE width='700' BORDER=5 CELLPADDING=1 CELLSPACING=1 bordercolor='#003399'>";
echo" <tr><td><div align='center'><span class='style1'><strong>Cedula</strong></span></div></td><td><div align='center'><span class='style1'><strong>Horas</strong></span></div></td><td><div align='center'><span class='style1'><strong>Fecha</strong></span></div></td></tr>";
do
{
printf("<tr><td><div align='center'><span class='style3'>%s</span></div></td><td><div align='center'><span class='style3'>%s</span></div></td><td><div align='center'><span class='style3'>%s</span></div></td></tr>",$row["cedula"], $row["horas"], $row["fecha"]);
}
while($row=pg_fetch_array($result));
echo" </TABLE>";
}
else
{
echo "<div align='center'><h4 class='style5'>¡ No se ha encontrado ningún Contrato !</h4></div>";
}
Puedes hacer un echo a $num y ver que tantos registros devuelve tu consulta SQL.
Por otro lado .. el uso que haces de printf() no es el mejor .. ¿por qué no usas un simple echo y vas concatenando?:
Código PHP:
echo "<htm.....> ......".$row['vaiable']."<mas tag html> ....".$row['variable'];
O mejor todavía para que veas como te queda tu código HTML si usas un editor de HTML visual tipo Dreamweaver .. "abre" y "cierra" PHP donde lo uses sólo:
Código PHP:
?>
<html .....><? echo $row['variable'] ?><más html tag's> ..... <? echo $row['variable'] ?>
<?
Un saludo,