Foros del Web » Programando para Internet » PHP »

Consultar 3 tablas en un DB

Estas en el tema de Consultar 3 tablas en un DB en el foro de PHP en Foros del Web. Buenas amigos de foros del WEB soy nuevo aqui y tengo un gran problema, me estoy iniciando en este grandioso mundo de la programacion y ...
  #1 (permalink)  
Antiguo 11/06/2012, 11:31
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Consultar 3 tablas en un DB

Buenas amigos de foros del WEB soy nuevo aqui y tengo un gran problema, me estoy iniciando en este grandioso mundo de la programacion y tengo una consulta. Necesito consultar una DB en mysql la cual tiene 3 tablas
tengo este form de consulta que me llama la funcion

<form id='form' name='form1' action='busqueda.php' method='GET' , con su campo de consulta para buscar por nombre.

Pero como puedo hacer para que la funcion query me muestre ejemplo:
las tres tablas tiene en comun el numero de cedula
tabla1 tiene cedula,telefono,direccion
tabla2 tiene cedula,nombre
tabla3 tiene cedula,salario,estadocivil

como hago para q la consulta me muestre al buscar por nombre , el resultado con la cedula,nombre,telefono,direccion y salario extraido cada campo de su respectiva tabla la cual comparten en comun el numero de cedula.

lo he intentado de muchas maneras en base a consultas relacionadas en este foro pero no logro hacer q consulte bien.

POR FAVOR SOLICITO DE SU AYUDA Y SE LOS AGRADEZCO DE ANTEMANO
  #2 (permalink)  
Antiguo 11/06/2012, 11:34
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: Consultar 3 tablas en un DB

con esto puede hacer el selet

Código PHP:
Ver original
  1. mysql_query("SELECT cedula, telefono, direccion FROM tabla 1 ");

y asi seguir con las otras tablas
  #3 (permalink)  
Antiguo 11/06/2012, 11:39
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Consultar 3 tablas en un DB

gracias xoceunder por tu pronta respuesta, el problemas es q
cuando genero todo el dato de esta manera eje
mysql_query("SELECT tabla1.cedula, tabla1.telefono, tabla2.direccion,... FROM tabla 1, tabla 2 ...where");

nose como hacer para que me muestre los resultados bien , ya que me da un error
  #4 (permalink)  
Antiguo 11/06/2012, 11:41
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 10 meses
Puntos: 32
Respuesta: Consultar 3 tablas en un DB

Entra a este link.

http://www.forosdelweb.com/f18/arning-mysql_fetch_assoc-expects-parameter-1-resource-boolean-given-997910/

Es un tema que se esta discutiendo justo ahora.

Saludos.
__________________
http://www.latinium.com.ar/
  #5 (permalink)  
Antiguo 11/06/2012, 11:43
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Consultar 3 tablas en un DB

gracias :)
  #6 (permalink)  
Antiguo 11/06/2012, 11:51
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: Consultar 3 tablas en un DB

Bueno pues prueba asi

Código PHP:
Ver original
  1. <?
  2.     $conn = @mysql_connect($dbhost,$dbuser,$dbpass) or sqlerror();
  3.     mysql_select_db($dbname, $conn);
  4.         $sql = mysql_query("SELECT * FROM tabla 1");
  5.             $rowcheckA = mysql_fetch_array($sql);
  6.         $sql = mysql_query("SELECT * FROM tabla 2");
  7.             $rowcheckB = mysql_fetch_array($sql);
  8.         $sql = mysql_query("SELECT * FROM tabla 3");
  9.             $rowcheckC = mysql_fetch_array($sql);
  10.     mysql_close($conn);
  11.     echo $rowcheckA["telefono"];
  12.     echo $rowcheckA["direccion"];
  13.     echo $rowcheckA["cedula"];
  14.     echo $rowcheckB["nombre"];
  15.     echo $rowcheckB["cedula"];
  16.     echo $rowcheckC["salario"];
  17.     echo $rowcheckC["estadocivil"];
  18.     echo $rowcheckC["cedula"];
  19. ?>
  #7 (permalink)  
Antiguo 11/06/2012, 12:04
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Consultar 3 tablas en un DB

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in

me da ese error :(

asi es como inicalmente lo tenia estructurado

<?php
include('conexion2.php');
$nombre=$_GET['nombre'];

$query="select ice.telefono,ice.cedula,padron.nombre,padron.distr ito,ccss.direccion,ccss.salario from ice, padron, ccss where (AQUI ES DONDE SE PIERDE EL ASUNTO PORQUE NO SE Q SIGUE SI ES UN JOIN PARA LAS 3 TABLAS COMPARTAN LA CEDULA EN COMUN O QUE ?)nombre like '%$nombre%' order by nombre asc";
$result= mysql_query($query);

echo "<table id='td' border='1' bordercolor='#000000' name='resultado' cellpadding='0' cellspacing='0'></th><th>TELEFONO</th><th>CEDULA</th><th>NOMBRE</th><th>DISTRITO</th><th>DIRECCION</th><th>SALARIO</th></tr>";
while($fila= mysql_fetch_row($result)){
echo "<tr>";
for($i=0;$i<mysql_num_fields($result) ;$i++){
echo "<td>".$fila[$i]."</td>";

}

echo "</tr>";
}

echo "</table>";

?>

AYUDAAAAAAAAA
  #8 (permalink)  
Antiguo 11/06/2012, 12:15
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 10 meses
Puntos: 32
Respuesta: Consultar 3 tablas en un DB

Bueno te posteo por aca, el tema es el join.
Tenes 3 tablas y las 3 se relacionan por un campo que es unico.

Código PHP:
Ver original
  1. $query = "SELECT t1.*, t2.*, t3.*
  2.          FROM
  3.             tabla1 AS t1
  4.                 JOIN tabla2 AS t2 ON t1.cedula = t2.cedula
  5.                 JOIN tabla3 AS t3 ON t2.cedula = t3.cedula
  6.           ";

Espero sirva, saludos.

PD: Deberias leer un manual de sql.
__________________
http://www.latinium.com.ar/
  #9 (permalink)  
Antiguo 11/06/2012, 12:27
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Consultar 3 tablas en un DB

muchas gracias elgoncho99 voy a probar de esta manera , gracias por ayuda , el caso esq estoy estudiando de todo esto pero aun no he llegado a la parte de sql

Saludos y gracias denuevo
  #10 (permalink)  
Antiguo 11/06/2012, 12:39
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: Consultar 3 tablas en un DB

Cita:
Iniciado por xoceunder Ver Mensaje
Bueno pues prueba asi

Código PHP:
Ver original
  1. <?
  2.     $conn = @mysql_connect($dbhost,$dbuser,$dbpass) or sqlerror();
  3.     mysql_select_db($dbname, $conn);
  4.         $sql = mysql_query("SELECT * FROM tabla 1");
  5.             $rowcheckA = mysql_fetch_array($sql);
  6.         $sql = mysql_query("SELECT * FROM tabla 2");
  7.             $rowcheckB = mysql_fetch_array($sql);
  8.         $sql = mysql_query("SELECT * FROM tabla 3");
  9.             $rowcheckC = mysql_fetch_array($sql);
  10.     mysql_close($conn);
  11.     echo $rowcheckA["telefono"];
  12.     echo $rowcheckA["direccion"];
  13.     echo $rowcheckA["cedula"];
  14.     echo $rowcheckB["nombre"];
  15.     echo $rowcheckB["cedula"];
  16.     echo $rowcheckC["salario"];
  17.     echo $rowcheckC["estadocivil"];
  18.     echo $rowcheckC["cedula"];
  19. ?>
amigo prueba con esta ya que estan separada las tablas y es ma facil para ti
  #11 (permalink)  
Antiguo 11/06/2012, 13:08
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Consultar 3 tablas en un DB

Cita:
Iniciado por elgoncho99 Ver Mensaje
Bueno te posteo por aca, el tema es el join.
Tenes 3 tablas y las 3 se relacionan por un campo que es unico.

Código PHP:
Ver original
  1. $query = "SELECT t1.*, t2.*, t3.*
  2.          FROM
  3.             tabla1 AS t1
  4.                 JOIN tabla2 AS t2 ON t1.cedula = t2.cedula
  5.                 JOIN tabla3 AS t3 ON t2.cedula = t3.cedula
  6.           ";

Espero sirva, saludos.

PD: Deberias leer un manual de sql.
Lo aplique de esta manera pero no me muestra resultados

asi quedo el codigo

Cita:
<?php
include('conexion.php');
$cedula=$_GET['cedula'];

$query="SELECT
i.telefono,
i.cedula,
p.nombre,
p.distrito,
c.direccion,
c.salario
FROM
ice AS i
JOIN padron AS p ON i.cedula = p.cedula
JOIN ccss AS c ON p.cedula = c.cedula
WHERE
i.cedula='$cedula' order by nombre asc";
$result= mysql_query($query);

echo "<table id='td' border='1' bordercolor='#000000' name='resultado' cellpadding='0' cellspacing='0'></th><th>TELEFONO</th><th>CEDULA</th><th>NOMBRE</th><th>DISTRITO</th><th>DIRECCION</th><th>SALARIO</th></tr>";
while($fila= mysql_fetch_row($result)){
echo "<tr>";
for($i=0;$i<mysql_num_fields($result) ;$i++){
echo "<td>".$fila[$i]."</td>";

}

echo "</tr>";
}

echo "</table>";

?>
este es el codigo del form de busqueda


Cita:
<?php
if (isset($_GET['opc']) and $_GET['opc']==1){

echo "<fieldset><form id='form' name='form1' action='busqueda2.php' method='GET' onsubmit='return checkform(this);'>";
echo "Ingrese Nombre:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input align='middle' type='text' name='nombre' placeholder='1er Apellido 2do Apellido'><input type='submit' value='Buscar'><br/>";
echo "</form></fieldset><br/>";
echo "<fieldset><form id='form' name='form1' action='buscar.php' method='GET' onsubmit='return checkform2(this);'>";
echo "Ingrese-cedula:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input align='middle' type='text' name='cedula' placeholder='Numero id pegado'><input type='submit' value='Buscar'><br/>";

}

?>
que estoy haciendo mal
  #12 (permalink)  
Antiguo 11/06/2012, 13:15
 
Fecha de Ingreso: junio-2012
Ubicación: En el Mundo
Mensajes: 759
Antigüedad: 11 años, 10 meses
Puntos: 10
Respuesta: Consultar 3 tablas en un DB

mi amigo djviruzz veo que no quieres utilizar la obcion que te ofreci es muy sencilla y facil de manejar
  #13 (permalink)  
Antiguo 11/06/2012, 13:28
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 10 meses
Puntos: 32
Respuesta: Consultar 3 tablas en un DB

Proba usando un array asociativo devuelto por mysql_fetch_array
Tene cuidado porque tambien habias escrito mal un par de tags HTML pusiste </th> en lugar de <tr>.

Código PHP:
Ver original
  1. echo "<table id='td' border='1'
  2.         bordercolor='#000000'
  3.         name='resultado'
  4.         cellpadding='0'
  5.         cellspacing='0'>
  6.         <tr>
  7.             <th>TELEFONO</th>
  8.             <th>CEDULA</th>
  9.             <th>NOMBRE</th>
  10.             <th>DISTRITO</th>
  11.             <th>DIRECCION</th>
  12.             <th>SALARIO</th>
  13.         </tr>";
  14. while($fila= mysql_fetch_array($result))
  15. {
  16.     echo "<tr>";
  17.         echo "<td>".$fila['telefono']."</td>";
  18.         echo "<td>".$fila['cedula']."</td>";
  19.         echo "<td>".$fila['nombre']."</td>";
  20.         echo "<td>".$fila['distrito']."</td>";
  21.         echo "<td>".$fila['direccion']."</td>";
  22.         echo "<td>".$fila['salario']."</td>";
  23.     echo "</tr>";
  24. }
  25. echo "</table>";

Esperso sirva, saludos.
__________________
http://www.latinium.com.ar/
  #14 (permalink)  
Antiguo 11/06/2012, 14:19
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Consultar 3 tablas en un DB

Cita:
Iniciado por xoceunder Ver Mensaje
mi amigo djviruzz veo que no quieres utilizar la obcion que te ofreci es muy sencilla y facil de manejar
gracias xoceunder el problema no esq no quiera utilizar tu metodo , si no que lo probe y me da un error
  #15 (permalink)  
Antiguo 11/06/2012, 14:53
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Consultar 3 tablas en un DB

Cita:
Iniciado por elgoncho99 Ver Mensaje
Proba usando un array asociativo devuelto por mysql_fetch_array
Tene cuidado porque tambien habias escrito mal un par de tags HTML pusiste </th> en lugar de <tr>.

Código PHP:
Ver original
  1. echo "<table id='td' border='1'
  2.         bordercolor='#000000'
  3.         name='resultado'
  4.         cellpadding='0'
  5.         cellspacing='0'>
  6.         <tr>
  7.             <th>TELEFONO</th>
  8.             <th>CEDULA</th>
  9.             <th>NOMBRE</th>
  10.             <th>DISTRITO</th>
  11.             <th>DIRECCION</th>
  12.             <th>SALARIO</th>
  13.         </tr>";
  14. while($fila= mysql_fetch_array($result))
  15. {
  16.     echo "<tr>";
  17.         echo "<td>".$fila['telefono']."</td>";
  18.         echo "<td>".$fila['cedula']."</td>";
  19.         echo "<td>".$fila['nombre']."</td>";
  20.         echo "<td>".$fila['distrito']."</td>";
  21.         echo "<td>".$fila['direccion']."</td>";
  22.         echo "<td>".$fila['salario']."</td>";
  23.     echo "</tr>";
  24. }
  25. echo "</table>";

Esperso sirva, saludos.
ya lo probe de esa manera y no me da resultados me sale la tabla bien pero vacia :( no se que esta MAL
  #16 (permalink)  
Antiguo 11/06/2012, 15:04
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 10 meses
Puntos: 32
Respuesta: Consultar 3 tablas en un DB

Pueden pasar 2 cosas o no le llega la cedula a traves del get.

O bien la cedula no existe en la base de datos.
__________________
http://www.latinium.com.ar/
  #17 (permalink)  
Antiguo 11/06/2012, 15:11
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Consultar 3 tablas en un DB

debe de ser la 1 que no le llega a travez del get , ya que estoy haciendo la prueba con un numero de cedula real dentro de las 3 bases

Etiquetas: consultar, mysql, tabla, tablas
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 20:15.