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

No puedo acceder a una fila determinada al relacionar tablas

Estas en el tema de No puedo acceder a una fila determinada al relacionar tablas en el foro de Mysql en Foros del Web. Buenas tardes. Tengo una duda a la hora de extraer los datos de una tabla que tengo relacionada con otra, las estructuras son las siguientes: ...
  #1 (permalink)  
Antiguo 20/03/2011, 11:57
 
Fecha de Ingreso: febrero-2010
Mensajes: 84
Antigüedad: 14 años, 2 meses
Puntos: 1
No puedo acceder a una fila determinada al relacionar tablas

Buenas tardes.
Tengo una duda a la hora de extraer los datos de una tabla que tengo relacionada con otra, las estructuras son las siguientes:

Código:
CREATE TABLE usuarios
(
id_usuario INT NOT NULL AUTO_INCREMENT,
`puntuacion` INT ( 7 ) NOT NULL,
`id_perfil` INT NOT NULL, 
`usuario` VARCHAR( 50 ) NOT NULL,
`password` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 100 ) NOT NULL,
`fecAlta` DATE NOT NULL,

PRIMARY KEY(id_usuario),
INDEX (id_perfil),
FOREIGN KEY (id_perfil) REFERENCES perfiles(id_perfil)
UNIQUE (`usuario` ,`email`)
) TYPE = INNODB;

Esta tabla se relaciona con la tabla perfiles:

Código:
CREATE TABLE perfiles
(
id_perfil INT NOT NULL AUTO_INCREMENT,
perfil VARCHAR(30),
mensaje VARCHAR(255),
PRIMARY KEY (id_perfil)
) TYPE = INNODB;
Bien, ahora cuando quiero acceder a los mensajes de un perfil dependiendo de como se logeo el usuario hago:

Código:
$query = mysql_query("SELECT usuario, id_perfil FROM usuarios WHERE usuario = '$nombre' ") or die(mysql_error());
$data = mysql_fetch_array($query);
Y para acceder al mensaje:

Código:
echo $data['id_perfil'].mensaje;
Me da el siguiente mensaje de error:

Cita:
Notice: Use of undefined constant mensaje - assumed 'mensaje' in C:\Program Files (x86)\EasyPHP-5.3.3\www\zwmodular\pcont\entradanueva.php on line 57

4mensaje
Alguien podría marcar mi error?
Desde ya muchas gracias por su tiempo!
  #2 (permalink)  
Antiguo 20/03/2011, 15:25
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: No puedo acceder a una fila determinada al relacionar tablas

Estas haciendo un select que te devuelve solamente el usuario y el id_perfil de la tabla usuarios, no el mensaje de la tabla perfiles. Ademas para acceder a una columna no se pone un .nombrecolumna, debes recogerla del array $data a traves de su indice.

Debes cambiar la sentencia y ponerla asi:

Código PHP:
$query mysql_query("select t1.usuario, t1.id_perfil, t2.mensaje from usuarios t1, perfiles t2 where t1.id_perfil = t2.id_perfil and t1.usuario = '$nombre'");

$data mysql_fetch_array($query);

echo 
$data[3]; 
Eso te deberia funcionar, un saludo!
  #3 (permalink)  
Antiguo 23/03/2011, 19:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 84
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: No puedo acceder a una fila determinada al relacionar tablas

Muchas gracias por la respuesta javiDP en base a lo que me pasaste y al siguiente enlace pude resolver mi problema:

http://www.wikilearning.com/tutorial...onadas/18001-1

Muchas gracias nuevamente ;)

Etiquetas: acceder, fila, relacionar, 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 08:40.