Foros del Web » Programando para Internet » PHP »

Duda PHP mysql con usuarios

Estas en el tema de Duda PHP mysql con usuarios en el foro de PHP en Foros del Web. Estimados buenas tardes, mi consulta es la siguiente: Tengo una base de datos con dos tablas una llamada "usuarios" y la otra "empresas", hago la ...
  #1 (permalink)  
Antiguo 20/12/2012, 11:19
Avatar de posicionarwebcl  
Fecha de Ingreso: marzo-2012
Ubicación: Región Metropolitana
Mensajes: 22
Antigüedad: 12 años, 1 mes
Puntos: 0
Duda PHP mysql con usuarios

Estimados buenas tardes, mi consulta es la siguiente:

Tengo una base de datos con dos tablas una llamada "usuarios" y la otra "empresas", hago la consulta para comprobar el usuario:

$result = mysql_query("SELECT * FROM usuarios WHERE usuario='".$_SESSION['usuario']."' AND contrasena='".$_SESSION['contrasena']."'");

while($row = mysql_fetch_array($result))
{

}


Mi problema es el siguiente, ahora cuando el usuario se logeo correctamente necesito mostrar los datos que agrego en la tabla "empresas" donde los campos son

nombre_empresa
rubro
telefono
web

que se encuentran como lo dije en "empresas".

No se si me explique bien, porfavor necesito de su ayuda.
  #2 (permalink)  
Antiguo 20/12/2012, 11:30
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Duda PHP mysql con usuarios

Cita:
Iniciado por posicionarwebcl Ver Mensaje
Estimados buenas tardes, mi consulta es la siguiente:

Tengo una base de datos con dos tablas una llamada "usuarios" y la otra "empresas", hago la consulta para comprobar el usuario:

$result = mysql_query("SELECT * FROM usuarios WHERE usuario='".$_SESSION['usuario']."' AND contrasena='".$_SESSION['contrasena']."'");

while($row = mysql_fetch_array($result))
{

}


Mi problema es el siguiente, ahora cuando el usuario se logeo correctamente necesito mostrar los datos que agrego en la tabla "empresas" donde los campos son

nombre_empresa
rubro
telefono
web

que se encuentran como lo dije en "empresas".

No se si me explique bien, porfavor necesito de su ayuda.
En la tabla de empresas tendrías que agregar un campo "usuario" para identificar que usuario ha introducido la informacio. (quien dice usuario dice identificador_usuario o lo que más te guste).
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 20/12/2012, 11:40
Avatar de posicionarwebcl  
Fecha de Ingreso: marzo-2012
Ubicación: Región Metropolitana
Mensajes: 22
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Duda PHP mysql con usuarios

mmm no entendi muy bien.
  #4 (permalink)  
Antiguo 20/12/2012, 15:12
Avatar de posicionarwebcl  
Fecha de Ingreso: marzo-2012
Ubicación: Región Metropolitana
Mensajes: 22
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Duda PHP mysql con usuarios

Por favor necesito de su ayuda .
  #5 (permalink)  
Antiguo 20/12/2012, 15:24
Avatar de posicionarwebcl  
Fecha de Ingreso: marzo-2012
Ubicación: Región Metropolitana
Mensajes: 22
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Duda PHP mysql con usuarios

y como le doy a realacion entre tablas?
  #6 (permalink)  
Antiguo 20/12/2012, 21:37
Avatar de JhonErick  
Fecha de Ingreso: noviembre-2012
Ubicación: colombia
Mensajes: 38
Antigüedad: 11 años, 5 meses
Puntos: 3
Respuesta: Duda PHP mysql con usuarios

en plastilina debes relacionar dos tablas y lo haces con campos en comun por ejemplo una tabla usuario puedes tener un id unico y en la tabla empresas debes tener el campo id_usuario que es el id de la tabla usuario despues modificas el query asi
Código PHP:
Ver original
  1. mysql_query("SELECT name,id FROM usuarios WHERE usuario='".$_SESSION['usuario']."' AND contrasena='".$_SESSION['contrasena']."'");
siempre es bueno solo consultar los campos que se necesitan y con $row['id'] haces otra consulta a la tabla empresas para que te muestre la información perteneciente al id asociado al usuario

Saludos
  #7 (permalink)  
Antiguo 21/12/2012, 03:55
Avatar de javiertroya  
Fecha de Ingreso: mayo-2009
Ubicación: Valencia
Mensajes: 15
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Duda PHP mysql con usuarios

Hola, lo primero que te recomendaría sería no almacenar la contraseña en una sesión debido a que luego puede ser capturada por algún malintencionado que quiera dañar tu aplicación.

Ahora para responder a tu pregunta, lo primero que debes hacer es relacionar las tablas, es decir, crear un campo identificador en la de usuarios (Normalmente llamado ID) y luego un relacional en la tabla empresas que podría llamarse "user_id" y cada vez que un usuario guarde información de su empresa se guardaría con el identificador único.

Un ejemplo de las tablas podría ser el siguiente:

Código MySQL:
Ver original
  1. CREATE TABLE  `usuarios` (
  2.  `usuario` VARCHAR( 16 ) NOT NULL ,
  3.  `clave` VARCHAR( 16 ) NOT NULL ,
  4.  `email` VARCHAR( 25 ) NOT NULL
  5. ) ENGINE = MYISAM ;
  6.  
  7. CREATE TABLE  `empresas` (
  8.  `user_id` INT( 11 ) NOT NULL ,
  9.  `nombre` VARCHAR( 50 ) NOT NULL ,
  10.  `rubro` VARCHAR( 50 ) NOT NULL ,
  11.  `telefono` VARCHAR( 11 ) NOT NULL ,
  12.  `web` VARCHAR( 50 ) NOT NULL
  13. ) ENGINE = MYISAM ;

Como vez creamos las 2 tablas de una forma muy simple, ambas con un campo id que se autoincrementa para generar el id unico de cada usuario y de cada empresa y en la tabla empresas el campo user_id que hara referencia al usuario que lo creo.

Para generar consultas

Una vez que tu usuario este identificado en la base de datos, puedes almacenar el ID del usuario en una sesion digamos que seria algo como $_SESSION["user_id"] y para consultar las empresas o la empresa del usuario (No se si un usuario tendra una o muchas empresas) puedes usar la siguiente consulta:

Código PHP:
Ver original
  1. $empresas_query = mysql_query("SELECT * FROM empresas WHERE user_id = '" . $_SESSION["user_id"] . "'");
  2.  
  3. // Verificas si hay empresas
  4. if ( mysql_num_rows ( $empresas_query ) > 0 )
  5. {
  6.  $empresas_usuario = mysql_fetch_object ( $empresas_query );
  7.  foreach ( $empresas_usuario as $empresas )
  8.  {
  9.    echo $empresas->nombre . "<br />"; // Esto solo imprimira el nombre de la empresa y luego un salto de línea
  10.  }
  11. }

Espero te funcione, saludos!
  #8 (permalink)  
Antiguo 21/12/2012, 12:54
Avatar de posicionarwebcl  
Fecha de Ingreso: marzo-2012
Ubicación: Región Metropolitana
Mensajes: 22
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Duda PHP mysql con usuarios

Muchísimas gracias de ante mano, me funciono a la perfección, te lo agradezco.


Cita:
Iniciado por javiertroya Ver Mensaje
Hola, lo primero que te recomendaría sería no almacenar la contraseña en una sesión debido a que luego puede ser capturada por algún malintencionado que quiera dañar tu aplicación.

Ahora para responder a tu pregunta, lo primero que debes hacer es relacionar las tablas, es decir, crear un campo identificador en la de usuarios (Normalmente llamado ID) y luego un relacional en la tabla empresas que podría llamarse "user_id" y cada vez que un usuario guarde información de su empresa se guardaría con el identificador único.

Un ejemplo de las tablas podría ser el siguiente:

Código MySQL:
Ver original
  1. CREATE TABLE  `usuarios` (
  2.  `usuario` VARCHAR( 16 ) NOT NULL ,
  3.  `clave` VARCHAR( 16 ) NOT NULL ,
  4.  `email` VARCHAR( 25 ) NOT NULL
  5. ) ENGINE = MYISAM ;
  6.  
  7. CREATE TABLE  `empresas` (
  8.  `user_id` INT( 11 ) NOT NULL ,
  9.  `nombre` VARCHAR( 50 ) NOT NULL ,
  10.  `rubro` VARCHAR( 50 ) NOT NULL ,
  11.  `telefono` VARCHAR( 11 ) NOT NULL ,
  12.  `web` VARCHAR( 50 ) NOT NULL
  13. ) ENGINE = MYISAM ;

Como vez creamos las 2 tablas de una forma muy simple, ambas con un campo id que se autoincrementa para generar el id unico de cada usuario y de cada empresa y en la tabla empresas el campo user_id que hara referencia al usuario que lo creo.

Para generar consultas

Una vez que tu usuario este identificado en la base de datos, puedes almacenar el ID del usuario en una sesion digamos que seria algo como $_SESSION["user_id"] y para consultar las empresas o la empresa del usuario (No se si un usuario tendra una o muchas empresas) puedes usar la siguiente consulta:

Código PHP:
Ver original
  1. $empresas_query = mysql_query("SELECT * FROM empresas WHERE user_id = '" . $_SESSION["user_id"] . "'");
  2.  
  3. // Verificas si hay empresas
  4. if ( mysql_num_rows ( $empresas_query ) > 0 )
  5. {
  6.  $empresas_usuario = mysql_fetch_object ( $empresas_query );
  7.  foreach ( $empresas_usuario as $empresas )
  8.  {
  9.    echo $empresas->nombre . "<br />"; // Esto solo imprimira el nombre de la empresa y luego un salto de línea
  10.  }
  11. }

Espero te funcione, saludos!
  #9 (permalink)  
Antiguo 22/12/2012, 13:34
Avatar de javiertroya  
Fecha de Ingreso: mayo-2009
Ubicación: Valencia
Mensajes: 15
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Duda PHP mysql con usuarios

Excelente, que bien que te funcionó
:P Un saludo

Etiquetas: mysql, tabla, usuarios
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 17:34.