• Jueves 2 de Mayo de 2024, 16:54

Autor Tema:  Insertar en una base de datos Relacional  (Leído 2964 veces)

Alberto_127

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Insertar en una base de datos Relacional
« en: Jueves 30 de Octubre de 2008, 19:00 »
0
hola buen dia a todos, tengo una duda sobre insertar datos en un bd relacional, tengo una tabla de usuarios, con los campos, id, user, password, nivel, diaregistro; tengo otra
tabla que se llama datos_de_usuarios con los campos, id, nombre, apellidos, sexo, fecha, id_user, id_user es una FK al campo id de la tabla usuarios; al momento de crear un
usuario lo que hago es primero insertar los datos en la tabla usuario, esto me genera un id dado que es autoincrementable, segundo hago un select a la tabla para tomar el id
y tercero inserto los demas valores en la otra tabla datos_de_usuarios junto con el id del usuario, de esa forma lo he hecho, mi duda es alguien sabe de otra forma de realizar esto,
no se si me explicado, insertar los datos en una tabla, tomar el valor id que es autoincrement para insertarlo en la otra tabla para crear la relacion, de antemano gracias a todos por
sus comentarios.

el_shanky

  • Miembro MUY activo
  • ***
  • Mensajes: 177
    • Ver Perfil
Re: Insertar en una base de datos Relacional
« Respuesta #1 en: Viernes 31 de Octubre de 2008, 02:08 »
0
Para mi es tan válido lo que haces vos como tmb lo sería insertar el id del datos_de_usuario dentro de la tabla usuario!

No entiendo cual es tu incógnita? :S

Salu2
"La programación hoy en día es una carrera entre los ingenieros de software intentado construir mejores y más eficientes programas a prueba de idiotas y el Universo intentando producir mejores y más grandes idiotas. De lejos, el Universo está ganando." - Rich Cook



http://www.maxcode.com.ar

http://www.shanky.com.ar

homie

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Insertar en una base de datos Relacional
« Respuesta #2 en: Viernes 31 de Octubre de 2008, 06:09 »
0
Ok, si alcancé a entender lo que quieres hacer es insertar datos a 2 tablas diferentes desde un mismo formulario, si eso es correcto, lo que tendrías que hacer sería lo siguiente:

Código: PHP
  1. <?php
  2. //Recuperas los valores de tu formulario que insertarás en la tabla usuarios
  3. $user = $_POST['user'];
  4. $password = $_POST['password'];
  5. $nivel = $_POST['nivel'];
  6. $diaregistro = $_POST['diaregistro'];
  7.  
  8. //Insertas los valores a la tabla usuarios
  9. mysql_query("INSERT INTO usuarios (user, password, nivel, diaregistro) VALUES ('$user', '$password', '$nivel', '$diaregistro')",$conexion);
  10.  
  11. //Recuperas los valores de tu formulario que insertarás en la tabla datos_de_usuarios
  12. $nombre = $_POST['nombre'];
  13. $apellidos = $_POST['apellidos'];
  14. $sexo = $_POST['sexo'];
  15. $fecha = $_POST['fecha'];
  16. $id_user = mysql_insert_id(); //<---Aquí es donde tomas el valor id que es autoincrement para insertarlo en la otra tabla
  17.  
  18. //Insertas los valores a la tabla datos_de_usuarios
  19. mysql_query("INSERT INTO usuarios (nombre, apellidos, sexo, fecha, id_user) VALUES ('$nombre', '$apellidos', '$sexo', '$fecha', '$id_user')", $conexion);
  20. ?>
  21.  

Espero que esto te pueda ayudar. Saludos  :good:

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Insertar en una base de datos Relacional
« Respuesta #3 en: Sábado 1 de Noviembre de 2008, 16:58 »
0
En experiencias propias mysql_insert_id() falla, en ocaciones no devuelve el valor correcto.

La opcion que he 'adoptado' es generar una cadena unica por ejempo con UniqID despues hacer una consulta con esa cadena unica y obtener el Id autonumerico, parece que esto es menos productivo que usar la funcion  mysql_insert_id(), ya que seria otra consulta, una insercion etc., incluso hay muchas forma de hacerlo pero es bastante efectiva y certera :P

Esto es en base a problemas que hemos experimentado usando esa funcion, y por lo cual utilizamos esta forma comentada



Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

objetivophp

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
    • http://objetivophp.esp.st
Re: Insertar en una base de datos Relacional
« Respuesta #4 en: Domingo 2 de Noviembre de 2008, 20:21 »
0
Si lo que quieres es obtener el id insertado recientemente para una conexion se debe usar  LAST_INSERT_ID();
Es decir si haces un ingreso en una tabla con campo autoincremental y quieres usar el id que se genero en esa tabla la siguiente consulta es SELECT LAST_INSERT_ID(); puesto que esta es nativa de MySQL y trae el ultimo id para la conexion y no el ultimo id de la tabla por lo menos es lo que entiendo del manual de MySQL que difiere de mysql_insert_id de php que nos trae el ultimo id de cualquier conexion..

Alberto_127

  • Miembro activo
  • **
  • Mensajes: 64
    • Ver Perfil
Re: Insertar en una base de datos Relacional
« Respuesta #5 en: Martes 4 de Noviembre de 2008, 18:29 »
0
gracias a todos por su tiempo y sus respuestas, pues en principio use $id_user = mysql_insert_id(); pero si dicen que a veces devuelve un valor erroneo usare la funcion nativa de
MYSQL, a veces programo, y pues siempre busco una mejor manera de hacerlo, ya saben mas efeciente, como dicen todos los caminos conducen a roma, pero habran caminos largos
y otros cortos, saludos a todos y denuevo gracias por sus respuestas  :beer: