Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

MYSQL -> Foreign Keys

Estas en el tema de MYSQL -> Foreign Keys en el foro de Bases de Datos General en Foros del Web. Tengo una bd relacionada a otra a traves de 1 campo. por ejemplo El campo 'por' de la tabla ingresos va relacionado con el 'id' ...
  #1 (permalink)  
Antiguo 12/09/2005, 15:47
 
Fecha de Ingreso: septiembre-2005
Mensajes: 68
Antigüedad: 18 años, 7 meses
Puntos: 0
MYSQL -> Foreign Keys

Tengo una bd relacionada a otra a traves de 1 campo.
por ejemplo
El campo 'por' de la tabla ingresos
va relacionado con el 'id' de la tabla usuarios.

Código PHP:
$sql mysql_query("SELECT * FROM `ingresos` ORDER BY codigo ASC");
    while(
$r $mysql_query($sql)){
    
$id $r[id];
    
$codigo $r['codigo'];
    
$descripcion $r['descripcion'];
    
$por $r['por']; // Esta linea es la que necesito
    
echo "
    <TR>
    <TD width=\"20%\">$codigo</TD><TD width=\"60%\">$descripcion</TD><TD width=\"20%\">$por</TD>
    </TR>
    "
;
    } 
Al rescatar el valor del campo $por, como saco los valores asociados a el???
por ejemplo en la tabla usuarios tambien existe un campo llamado 'nombre', como rescato ese valor?
servira algo como $r['por']['nombre']; ?
  #2 (permalink)  
Antiguo 13/09/2005, 01:14
 
Fecha de Ingreso: agosto-2005
Mensajes: 101
Antigüedad: 18 años, 8 meses
Puntos: 0
Antes de nada, un consejo, cuando pongas claves ajenas, que se llamen igual, es lo correcto.

Lo que quieres es obtener los valores asociados a cada campo "por" ¿no? Pero esos valores estan en otra tabla ¿no? Tendras que hacer, para cada campo "por", una consulta que te devuelva los datos.

Código:
select * from usuarios where id = $por;
  #3 (permalink)  
Antiguo 13/09/2005, 04:14
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
No sé si te he entendido bien, pero prueba con esta sentencia sql y simplemente le pides el campo nombre
Código:
$sql = mysql_query("SELECT * FROM ingresos inner join usuarios on ingresos.por = usuarios.id  ORDER BY codigo ASC"); 
    while($r = $mysql_query($sql)){ 
    $id = $r[id]; 
    $codigo = $r['codigo']; 
    $descripcion = $r['descripcion']; 
    $por = $r['por']; // Esta linea es la que necesito 
    $nombre = $r['nombre']; 
    echo " 
    <TR> 
    <TD width=\"20%\">$codigo</TD><TD width=\"60%\">$descripcion</TD><TD width=\"20%\">$por</TD> 
    </TR> 
    "; 
    }
  #4 (permalink)  
Antiguo 13/09/2005, 08:36
 
Fecha de Ingreso: septiembre-2005
Mensajes: 68
Antigüedad: 18 años, 7 meses
Puntos: 0
gracias a todos,.-.. pero como dijo el post anterior fue mejor utilizar join en vez de calentarme la cabeza con las llaves extranjeras... saludos!

SELECT * FROM cc_tiposdeegresos AS t LEFT JOIN cc_usuarios AS u ON (u.id=t.por) ORDER BY t.codigo ASC
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 10:24.