
[RESUELTO] Problema con Agregar el mismo ID en varias tablas en la misma CONSULTA SQL
Comenzado por
Fedevergara
, nov 03 2011 07:07
11 respuestas en este tema
#1
Escrito 03 noviembre 2011 - 07:07
Buen día comunidad!!!Eh aquí otro problema sencillo quizas para ustedes pero que me esta complicando totalmente mi existencia!!!!
Les presento el caso:
Tengo 3 tablas que por Entidad Referencial comparten el mismo id, estas serían:
docentes:
id_docente
ape_nom
direccion
pais
localidad
docentes_telefonos:
id_docente
telefono
docentes_correos:
id_docente
correo
La idea es completar un solo formulario agregar.php y que me direccione a mi add.php, en donde tengo mi consulta SQL INSERT INTO.
Bien, el problema es poder generar el mismo id_docente en todas las tablas!!Alguien me podría ayudar por favor con la consulta!!!!
Gracias!!
Les presento el caso:
Tengo 3 tablas que por Entidad Referencial comparten el mismo id, estas serían:
docentes:
id_docente
ape_nom
direccion
pais
localidad
docentes_telefonos:
id_docente
telefono
docentes_correos:
id_docente
correo
La idea es completar un solo formulario agregar.php y que me direccione a mi add.php, en donde tengo mi consulta SQL INSERT INTO.
Bien, el problema es poder generar el mismo id_docente en todas las tablas!!Alguien me podría ayudar por favor con la consulta!!!!
Gracias!!
#2
Escrito 03 noviembre 2011 - 07:14
Pregunta, las otras dos tablas docente_id es autoincremental?
#3
Escrito 03 noviembre 2011 - 07:23
No no, probé con el autoincrement, el tema es que al agregar un docente con el id supuesto 1 y el mismo tiene 3 teléfonos, éstos se agregaran a la tabla con los id 1, 2 y 3!!Por ende la entidad referencial con el docente se me rompería y sólo me mostraría el primer número!!!..
#4
Escrito 03 noviembre 2011 - 07:31
Amigo para poderte ayudar tienes q explicar la mecánica o lógica a del negocio, porque por lo q veo, todos los campos q tienes en las 3 tablas pertenecen a docentes.
es decir LA entidad Docentes tiene unos atributos. veamos
DOCENTES
{
*nombres
*Identificaciones
* Teléfono
*correo
* dirección
*y todo lo q mas quieras.
*idmaterias -> podría ser q halla una tabla con las materias q el imparte
*idcolegios -> puede ser q trabaje en varios colegios.
} Entonces lo q te quiero decir es q No entiendo Q quieres hacer con atributos q pertenecen a una misma entidad en diferentes tablas. explícanos mejor a todos. listo. yo estaré pendiente.
es decir LA entidad Docentes tiene unos atributos. veamos
DOCENTES
{
*nombres
*Identificaciones
* Teléfono
*correo
* dirección
*y todo lo q mas quieras.
*idmaterias -> podría ser q halla una tabla con las materias q el imparte
*idcolegios -> puede ser q trabaje en varios colegios.
} Entonces lo q te quiero decir es q No entiendo Q quieres hacer con atributos q pertenecen a una misma entidad en diferentes tablas. explícanos mejor a todos. listo. yo estaré pendiente.
#5
Escrito 03 noviembre 2011 - 07:38
Es cierto son datos de docente, pero por Normalización hasta su 3ra Forma Normal debo separar dichas tablas previniendo el supuesto caso que el docente tenga más de un teléfono o bien más de un correo.
Por ende la tabla docentes_telefono cargada con registros quedaría:
id_docente telefono
1 111111111
1 232323223
1 456564564
2 567567567
4 879789798
4 345453453
De esta manera al realizar las consultas podría respetar la entidad referencial.
Por ende la tabla docentes_telefono cargada con registros quedaría:
id_docente telefono
1 111111111
1 232323223
1 456564564
2 567567567
4 879789798
4 345453453
De esta manera al realizar las consultas podría respetar la entidad referencial.
#6
Escrito 03 noviembre 2011 - 07:39
Lo que tienes que hacer es guardar en una variable el ultimo ID generado por el insert de la Tabla Docentes, algo asi:
ya luego de ahi realizas los otros insert en base a esa variable.
Saludos
php
ya luego de ahi realizas los otros insert en base a esa variable.
Saludos
#7
Escrito 03 noviembre 2011 - 07:50
Es así como manejo la consulta INSERT INTO para agregar el registro:
La verdad no entiendo donde poner la respuesta de enecumene!!
<?php
require_once("../../conexion/conexion.php");
$sql="INSERT INTO empresas (id_empresa, razon_social, cuit_responsable) VALUES (null,'".$_POST["razon_soc"]."','".$_POST["cuit"]."')";
$res=mysql_query($sql,$conexion);//El campo ID de esta tabla es auto_increment
$sql1="INSERT INTO emp_ubicacion (id_empresa, direccion, ciudad, localidad, departamento, municipio, pais, cp) VALUES (null,'".$_POST["direccion"]."','".$_POST["ciudad"]."','".$_POST["localidad"]."','".$_POST["departamento"]."','".$_POST["municipio"]."','".$_POST["pais"]."','".$_POST["cod_postal"]."')";
$res1=mysql_query($sql1,$conexion);//En esta consulta quisiera guardar el mismo id generado con el formulario anterior para guardarlo en id_empresa
$sql2="INSERT INTO emp_comunicacion (id_empresa, tel, fax, correo) VALUES (null,'".$_POST["tel"]."','".$_POST["fax"]."','".$_POST["correo"]."')";
$res2=mysql_query($sql2,$conexion);//En esta consulta quisiera guardar el mismo id generado con el formulario anterior para guardarlo en id_empresa
//O bien sería interesante una sola consulta que guarde en las tres tablas al mismo tiempo!!!
echo "<script type=''>
alert('Los datos de la Empresa fueron ingresados correctamente.');
window.location='emp_admin.php';
</script>";
?>
La verdad no entiendo donde poner la respuesta de enecumene!!
#8
Escrito 03 noviembre 2011 - 07:57
php
<?php require_once("../../conexion/conexion.php"); $sql="INSERT INTO empresas (id_empresa, razon_social, cuit_responsable) VALUES (null,'".$_POST["razon_soc"]."','".$_POST["cuit"]."')"; $sql1="INSERT INTO emp_ubicacion (id_empresa, direccion, ciudad, localidad, departamento, municipio, pais, cp) VALUES ('".$last_id."','".$_POST["direccion"]."','".$_POST["ciudad"]."','".$_POST["localidad"]."','".$_POST["departamento"]."','".$_POST["municipio"]."','".$_POST["pais"]."','".$_POST["cod_postal"]."')"; $res1=mysql_query($sql1,$conexion);//En esta consulta quisiera guardar el mismo id generado con el formulario anterior para guardarlo en id_empresa $sql2="INSERT INTO emp_comunicacion (id_empresa, tel, fax, correo) VALUES ('".$last_id."','".$_POST["tel"]."','".$_POST["fax"]."','".$_POST["correo"]."')"; $res2=mysql_query($sql2,$conexion);//En esta consulta quisiera guardar el mismo id generado con el formulario anterior para guardarlo en id_empresa //O bien sería interesante una sola consulta que guarde en las tres tablas al mismo tiempo!!! echo "<script type=''> alert('Los datos de la Empresa fueron ingresados correctamente.'); window.location='emp_admin.php'; </script>"; ?>
#9
Escrito 03 noviembre 2011 - 08:21
Enecumene perdona tanta molestia!!!Pero sigue sin salirme!!Acomodado el código en mi consulta ha quedado así:
Un pregunta, en $last_id=mysql_insert_id()...Entre los paréntesis no debería especificar el campo id que quiero tomar, por ejemplo:
$last_id=mysql_insert_id(id_empresa)
Ahhh y mil disculpas por poner en un principio que se trataba de docentes cuando estoy trabajando con empresas!!!Se me cruzaron las tablas!!!jejeje...
<?php
require_once("../../conexion/conexion.php");
$sql="INSERT INTO empresas (id_empresa, razon_social, cuit_responsable) VALUES (null,'".$_POST["razon_soc"]."','".$_POST["cuit"]."')";
$res=mysql_query($sql,$conexion);//El campo ID de esta tabla es auto_increment
$last_id = mysql_insert_id();
$sql1="INSERT INTO emp_ubicacion (id_empresa, direccion, ciudad, localidad, departamento, municipio, pais, cp) VALUES ('".$last_id."','".$_POST["direccion"]."','".$_POST["ciudad"]."','".$_POST["localidad"]."','".$_POST["departamento"]."','".$_POST["municipio"]."','".$_POST["pais"]."','".$_POST["cod_postal"]."')";
$res1=mysql_query($sql1,$conexion);//En esta consulta quisiera guardar el mismo id generado con el formulario anterior para guardarlo en id_empresa
$sql2="INSERT INTO empresas_tel (id_empresa, tel) VALUES ('".$last_id."','".$_POST["tel"]."')";
$res2=mysql_query($sql2,$conexion);//En esta consulta quisiera guardar el mismo id generado con el formulario anterior para guardarlo en id_empresa
$sql3="INSERT INTO empresas_tel (id_empresa, tel) VALUES ('".$last_id."','".$_POST["tel1"]."')";
$res3=mysql_query($sql3,$conexion);
//O bien sería interesante una sola consulta que guarde en las tres tablas al mismo tiempo!!!
echo "<script type=''>
alert('Los datos de la Empresa fueron ingresados correctamente.');
window.location='emp_admin.php';
</script>";
Un pregunta, en $last_id=mysql_insert_id()...Entre los paréntesis no debería especificar el campo id que quiero tomar, por ejemplo:
$last_id=mysql_insert_id(id_empresa)
Ahhh y mil disculpas por poner en un principio que se trataba de docentes cuando estoy trabajando con empresas!!!Se me cruzaron las tablas!!!jejeje...
#10
Escrito 03 noviembre 2011 - 08:25
A ver intenta con un echo o printf de $last_id a ver si toma algun valor y sino prueba poniendolo asi:
php
#11
Escrito 03 noviembre 2011 - 08:34
Enecumene sos un GENIO!!!!!!!Me salvaste de un suicidio inminente!!!jajajaja...Ahí está funcionando a las mil maravillas!!!!!
GRACIAS
GRACIAS-GRACIAS
GRACIAS-GRACIAS-GRACIAS
GRACIAS-GRACIAS
GRACIAS
GRACIAS
GRACIAS-GRACIAS
GRACIAS-GRACIAS-GRACIAS
GRACIAS-GRACIAS
GRACIAS
#12
Escrito 03 noviembre 2011 - 08:38


Coloco el tema como RESUELTO

Saludos.