Foros del Web » Programando para Internet » PHP »

duda con query para consultar base de datos

Estas en el tema de duda con query para consultar base de datos en el foro de PHP en Foros del Web. Hola buenas noches quiero un poco de ayuda ya que creo tener un error por no saber muy exactamente como usar este codigo para consultar ...
  #1 (permalink)  
Antiguo 17/07/2012, 01:32
Avatar de alrf1809  
Fecha de Ingreso: junio-2011
Ubicación: caracas
Mensajes: 40
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta duda con query para consultar base de datos

Hola buenas noches quiero un poco de ayuda ya que creo tener un error por no saber muy exactamente como usar este codigo para consultar en varias tablas a la vez de mi base de datos.. quiero consultar de mi tabla cliente, factura y detalle factura estos siguientes campos.

tabla factura
Numero de factura
fecha_factura
Monto total de la factura


tabla Cliente
Nombre
Rif

tabla detalle factura
codigo
descripcion
cantidad

he intentado con un codigo anterior que hice con un poco de ayuda pero no lo logro.. saludos! aca les dejo el codigo que tengo hecho.

Nota: los nombres de los atributos de la tabla son como los tengo en el codigo..

Código PHP:
<?php 
     $numfactura
=$_POST['numero_factura'];
           
$cnn mysql_connect("localhost","root","");
           if (!
$cnn) { 
              echo(
"<p>No es Posible Establecer Conexión con el Servidor.</p>");
              exit();
           }     
           if (!@
mysql_select_db("epa")){ 
              echo(
"<p>No es Posible Establecer Conectar con la Base de Datos.</p>");
              exit();
           }                     
           
$Consulta= @mysql_query("SELECT * codigo_producto_factura, descripcion_producto_factura, cantidad_producto_factura, 
                                    FROM detalle_factura INNER JOIN factura ON factura.numero_factura = factura.numero_factura
                                    WHERE factura.numero_factura = '$numfactura'"
),$cnn;       
           if (!
$Consulta) {        
              echo(
"<p>Error al ejecutar el Query Sql.</p>");
              exit();
           }    
           
            
$Registros=mysql_num_rows($Consulta);
if (
$Registros==1)
{while(
$Fila mysql_fetch_array($Consulta)) { 
                
                echo 
"<p align='center'><table border='1'>
                <tr><td><p>Numero de factura </p><p>"
.$Fila["numero_factura"]."</p></td>
                    <td><p>Fecha</p><p>"
.$Fila["fecha_factura"]."</p></td></tr>
                 <tr><td><p>Nombre</p><p>"
.$Fila["nombre_cliente"]."</p></td>
                    <td><p>Ci/Rif cliente</p><p>"
.$Fila["ci_rif_cliente"]."</p></td></tr>
                 <tr><td><p>Ci-Rif del cliente</p><p>"
.$Fila["codigo_producto_factura"]."</p></td>
                    <td><p>Descripcion del Producto</p><p>"
.$Fila["descripcion_producto_factura"]."</p></td></tr> 
                 <tr><td><p>Cantidad Producto</p><p>"
.$Fila["cantidad_producto_factura"]."</p></td>                
                    <td><p>Monto total de la Orden</p><p>"
.$Fila["monto_total_factura"]."</p></td></tr></table>
                 <a href='buscar_factura.html'>¡Regresar!</a></p>"
;
            } 
         
           
mysql_close($cnn); 

}    else { 
    echo     
"<p align='center'>El numero de orden ingresado no existe!<br>
            <img align='center' src='img/cara_triste.gif'><br>
            <a href='buscar_factura.html'>¡Regresar!</a></p>"
;
}
?>
  #2 (permalink)  
Antiguo 17/07/2012, 05:32
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: duda con query para consultar base de datos

Sin entrar en el código, y centrándome en la consulta, tienes varios errores, el *, la coma antes de from, la relacion entre tablas y el cierre de funcion antes de tiempo. Te dejo la select corregida.
Código PHP:
$Consulta= @mysql_query("SELECT f.*,df.codigo_producto_factura, df.descripcion_producto_factura, df.cantidad_producto_factura FROM detalle_factura as df INNER JOIN factura as f ON df.numero_factura = f.numero_factura WHERE f.numero_factura = '$numfactura'",$cnn); 
fíjate que en tu select le decias
Cita:
JOIN factura ON factura.numero_factura = factura.numero_factura
..y esto se va a cumplir siempre!! lo he sustituido por
Cita:
JOIN factura as f ON df.numero_factura = f.numero_factura
supongo que tienes un campo para relacionar la factura con su detalle. Por lo que veo en tu código, utilizas el num. de factura. Es más que recomendable utilizar un campo id autonumerico y único para cada tabla. En tu caso, la estructura de la db seria la siguiente:

tabla factura
id
cliente_id (donde cliente_id se relaciona con cliente.id)
Numero de factura
fecha_factura
Monto total de la factura


tabla Cliente
id
Nombre
Rif

tabla detalle factura
id
factura_id (donde factura_id se relaciona con factura.id)
codigo
descripcion
cantidad

Saludos.

Etiquetas: php+bd+mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:42.