No se ejecuta header

Estoy desarrollando una pequeña aplicación web con php que pide un uemro de cliente y hace una consulta sobre las base de datos, pero no entiendo como este código no se ejecuta cuando la cuenta no existe en la base de datos. No me muestra el mensaje y sigue hasta el código html y me da error ya que el vector o matriz no tiene datos, mi idea es que salte con header a la página que indico, pero no lo hace, que estoy haciendo mal, soy un programador novato en php.
Código
<?php
//conexion a base de datos
$conn = new COM("ADODB.Connection");
$conn->Open('Provider=VFPOLEDB.1;Data Source="c:\vfp\tarjetas\entregascod.dbc"');
if(!$conn){
header("Location:mensajeconexion.php");
$conn->Close();
echo "<script languaje='javascript' type='text/javascript'>window.history.back();</script>";
}
else {
$cuentas = strtoupper($_REQUEST['cuenta']);
$sql = &$conn->Execute("select * from movtar where movtar.nrocta = '".$cuentas."'");
$cuentafor = $sql->Fields["nrocta"];
$nombrefor = $sql->Fields["nombre"];
$direccionfor = $sql->Fields["dir"];
// evaluar resultado de consulta
// $resultado = $sql->recordcount();
// esto es lo que no se ejecuta
if(!$sql) {
header("Location:mensajeregistro.php");
$conn->Close();
echo "<script languaje='javascript' type='text/javascript'>window.history.back ();</script>";
}
?>
<!DOCTYPE HTML>
<html>
<style type="text/css">
#mostrar #tabla1 {
background-color: #CFF;
color: #000;
}
#mostrar table {
color: #000;
background-color: #CFF;
}
</style>
<body>
<form action="" method="post" name="mostrar" id="mostrar">
<h1>Resultado de Consulta</h1>
<table width="726" border="1" align="left" id="tabla1">
<tr>
<td width="337" height="23"><div align="left">
Y la linea de abajo me da un error ya que este elemento no tiene nada, porque la cuenta no existe en la base de datos
<?php echo $cuentafor;?>

1 respuesta

Respuesta
1
No utilices esto:
if(!$sql) {
Porque con esto solo chequeas que el query se ha ejecutado o no, no si tiene resultados!
Para lo otro, deberás hacer un Count o utilizar funciones apropiadas de PHP para saber si te responde con algún valor.
Eso, si creo haber entendido tu código, claro.
Saludos y suerte.
Diseño y presupuesto Web online.
Blog con consejor para freelance y tutoriales PHP.
Ok, gracias experto dejame buscar la función de adodb o en php para obtener el numero de lineas y poder hacer la comprobación como me indicas. Ahora quería hacerte una pregunta más y disculpa mi ignorancia, la combinación de php y html es de la siguiente manera:
Se ejecuta código php en el servidor y luego este manda la respuesta en código html, de ser así, podría hacer lo siguiente :
El numero de cuenta con el que consulto los registros pueden tener los estados siguientes :
Si es 1 oficina, 2 en gestión, 3 entregado, 4 devuelto, nuestra oficina es un servicio de despacho de encomiendas y la idea es que nuestros clientes puedan rastreas sus productos y ver el estado de cada un de ellos. Con varios de estos estados no hay problemas ya que la mayoría de los datos mostrados vienen de una única tabla, el problema esta en el estado 3, que debemos consultar otra tabla y traer los datos de quien recibió el paquete, no puedo hacer una relación ya que solo mostraría los que están entregados y deseamos tener todos los estados, mi pregunta si la relación php-html funciona como te comente anteriormente como puedo tener una consulta para la tabla que contiene los estados y otra matriz con los datos de quien recibe y hacer solo una consulta en el servidor y no tener que leerlo desde el código en html como esta en el ejemplo, ahora como relaciono las dos matrices o hay una forma o función de búsqueda para una matriz en php para obetner los datos de la matriz de quien recibe con el numero de cuenta que esta en ambas tablas y por ultimo quería decirte que te felicito por esta labor que realizas, me imagino la cantidad de trabajo que tienes y todavía llegas a tu casa y ayudas a los programadores novatos como yo sin tener nada a cambio, bueno pienso que te satisface el ayudar a los demás, muchas gracias.
Víctor castillo caracas-venezuela
Eres de los pocos que agradece, la verdad!.
Si, funciona efectivamente así, se ejecuta en el servidor y te devuelve el HTML correspondiente. Puedes efectuar tantas consultas como necesites, más de nua por página si lo necesitas. Para manejar matrices, puedes utilizar arrays de dos dimensiones:
$matriz=[2,2]
... y referenciar a ella como necesites.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas