Foros del Web » Programando para Internet » PHP »

ligar tablas

Estas en el tema de ligar tablas en el foro de PHP en Foros del Web. alguien puede decirme como ligar dos tablas en mysql...
  #1 (permalink)  
Antiguo 14/04/2004, 13:55
 
Fecha de Ingreso: abril-2004
Ubicación: Coatzacoalcos
Mensajes: 10
Antigüedad: 13 años, 8 meses
Puntos: 0
De acuerdo ligar tablas

alguien puede decirme como ligar dos tablas en mysql
  #2 (permalink)  
Antiguo 14/04/2004, 15:37
Avatar de Blag  
Fecha de Ingreso: septiembre-2003
Ubicación: Lima
Mensajes: 68
Antigüedad: 14 años, 2 meses
Puntos: 0
¿Ligar dos tablas? ¿Te refieres a relacionarlas?

Bueno, si quieres relacionarlas, te digo que por el momento, MySql no soporta llaves foraneas, por lo cual deberías simplemente asumir que existen.

Si tienes dos tablas:

Area(IdArea,Nombre)

Empleado(IdEmpleado,IdArea,Nombre,Edad,Cargo)

El campo IdArea, sería la llave foránea que representa la relación entre ambas tablas. Claro, no tendrías integridad de datos, pero de todos modos funciona.
Aunque eso si.....nada de repetir nombres de llaves en varias tablas......porque sino.......todo va a fallar.

Saludos,

Blag
__________________
Alvaro Tejada Galindo
Consultor ABAP FI/HR
SinglePath's Experimental HomePage
Foro de ABAP en SoloCodigo.com
Revista "Código Latino"
  #3 (permalink)  
Antiguo 15/04/2004, 13:39
 
Fecha de Ingreso: abril-2004
Ubicación: Coatzacoalcos
Mensajes: 10
Antigüedad: 13 años, 8 meses
Puntos: 0
gracias por contestar

es decir tengo 2 tablas lo que quiero saber es como jalar un valor de otra tabla es decir tengo latabla

aq_personal con los campos

id_personal
nombre
id_seccion

y la tabla aq_seccion

id_seccion
nombreseccion

<?php include "conexion.php";
//vemos si el usuario y contraseña es válido

conectar();

mysql_select_db("lab_quimico");
$userid=$_POST['usuario'];
$password=$_POST['password'];
$sql="select * from aq_personal where Usuario='$userid'";
$res=mysql_query($sql);

if (mysql_num_rows($res))
{
$user=mysql_fetch_array($res);
if ($user["Clave_acceso"]==$password)
{
//usuario y contraseña válidos
session_start();
$_SESSION['autentificado']= 'SI';
$_SESSION['usuario']=$user["Usuario"];
$_SESSION['tipo']=$user["Clave_Acceso_Usuario"];
$_SESSION['C_seccion']=$user["Clave_Seccion"];
header ("Location: ./welcome.php");
}
else
header("Location: ./S_Inicio.php?error=2");
}
else
//si no existe le mando otra vez a la portada
header("Location: ./S_Inicio.php?error=1");
mysql_free_result($res);
?>


codigo2


<?php
include "S_seguridad.php";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>welcome</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<h1 align="center">
<marquee>W e l c o m e</marquee>
</h1>
<h1 align="left"> <?php echo $_SESSION['usuario'] ?> : <?php echo $_SESSION['C_seccion'] ?> </h1>
</body>
</html>

en welcome me aparece bienvenido
nombredel usuario y la id de la seccion

y lo que quiero es que aparezca
nombredelusuario y el nombre de la seccion y no el id de la seccion

espero que alguien me ayude por favor

les agradeceria un ejemplo si les es posible


gracias de antemano
  #4 (permalink)  
Antiguo 15/04/2004, 15:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tu pregunta se resulve con SQL ...

Código PHP:
$sql="select aq_personal.*,aq_seccion.* from aq_personal,aq_seccion where aq_personal.Usuario='$userid' and aq_seccion.id_seccion=aq_personal.id_seccion"
Fijate que para hacer referencia a varias tablas SQL . se nombran en el "FROM" y se usa la sintax: tablanombre.camponombre .. La Relación la establecemos entre ambas tablas al forzar la condición WHERE:

aq_seccion.id_seccion=aq_personal.id_seccion

Prueba este tipo de sentencias SQL en tu administrador de Msyql que usas para ver si es eso lo que requieres.

Esta consulta SQL se puede optimizar si usas sentencias JOIN (de intersercción) entre otras afines .. pero para esto mejor acude al foro de Base de datos o lee algún manual de SQL para Mysql.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 13:19.