Comunidad de diseño web y desarrollo en internet online

Ayuda sql consulta conpleja con php

Citar            
MensajeEscrito el 11 Mar 2010 01:06 am
hola nesecito una gran ayuda aver si algien me puede echar una mano ya que me canse de pensar como y de buscar como hacer estas consultas.

El tema es que 6 tablas y quiero obtener informacion de ellas pero con relacion al registro selecionado por ejemplo esto es lo que tengo:

1 consulta
[tabla_1]
id_usuarios
id_factura

2 consulta
[tabla_2]
id_usuarios
oferta_mane

3 consulta
[tabla_3]
id_usuarios
descripcion


4 consulta
[tabla_4]
id_usuarios
id_categoria

5 consulta
[tabla_5]
id_factura
facture_name

5 consulta
[tabla_5]
id_categoria
categoria_name


en php seria asi

Código PHP :

<?php
//conexicon ala base de datos
$conexicon = mysql_connect("localhost", "root", "pass");
mysql_select_db("bdate", $conexicon);

//11.- consulta para obtener la id de usuario y id de factuara para poder hacer la sigiente consulta
$res1 = mysql_query ("SELECT id_usuarios,id_factura FROM tabla_1");
while($row1=mysql_fetch_array($res1)){
$id_usuarios = $row1["id_usuarios"];
$id_factura = $row1["id_factura"];
} 

//2.-consulta para obtener 
$res2 = mysql_query("SELECT oferta_mane FROM tabla_2 WHERE id_usuarios = " .$id_usuario) or die(mysql_error());
while($row2=mysql_fetch_array($res2)){
$oferta_mane = $row2["oferta_mane"];
}

$res3 = mysql_query("SELECT descripcion FROM tabla_3 WHERE id_usuarios = " .$id_usuario) or die(mysql_error());
while($row3=mysql_fetch_array($res3)){
$descripcion = $row3["descripcion"];
}

$res4 = mysql_query("SELECT id_categoria FROM tabla_4 WHERE id_usuarios = " .$id_usuario) or die(mysql_error());
while($row4=mysql_fetch_array($res4)){
$id_categoria = $row4["id_categoria"];
}

$res5 = mysql_query("SELECT facture_name FROM tabla_5 WHERE id_factura = " .$id_factura) or die(mysql_error());
while($row5=mysql_fetch_array($res5)){
$facture_name = $row5["facture_name"];
}

$res6 = mysql_query("SELECT categoria_name FROM tabla_6 WHERE id_categoria = " .$id_categoria) or die(mysql_error());
while($row6=mysql_fetch_array($res6)){
$categoria_name = $row6["categoria_name"];

}


?>


Los resultados de estas consultas me dan lo sigiente:

$id_usuarios | $oferta_mane | $descripcion | $facture_name | $categoria_name

asta ai todo va bien

Pero el problema biene cuando intento que se vean todos los regitros basandose por la $id_usuarios

no se como hacer una consulta que me muestre todos los registros con los campos mencionados antriormente.

Si algien me puede ayudar le agradeceria mucho.

Por bemitoreya

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Mar 2010 01:48 pm
Tenes que usar las clausalas JOIN
http://dev.mysql.com/doc/refman/5.0/es/join.html

Aca tenes una explicacion mas humana
http://mauriciopastrana.com/gadgets-y-tecnologia/entendiendo-los-mysql-join/


Tu query quedaria asi


SELECT t2.oferta_mane, t3.oferta_mane, t4.descripcion, t5.facture_name ,t6. categoria_name
FROM tabla_2 t2
INNER JOIN tabla_3 t3 ON t3.id_usuarios = t2.id_usuarios
INNER JOIN tabla_4 t4 ON t4.id_usuarios = t2.id_usuarios
INNER JOIN tabla_5 t5 ON t5.id_usuarios = t2.id_usuarios
INNER JOIN tabla_6 t6 ON t6.id_usuarios = t2.id_usuarios
WHERE t2.id_usuarios = " .$id_usuario

Por pablofmorales

Claber

103 de clabLevel

1 tutorial

Genero:Masculino  

Web developer

firefox
Citar            
MensajeEscrito el 11 Mar 2010 02:09 pm
Antes que empieses a ver que clausula usar "[inner|left|right] join" debes tener bien estructurada la DB, por lo que estube viendo. No esta haci.

Te recomiento que leas algun tutorial que te ayude a esto...

http://www.mysqlya.com.ar/

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.