Foros del Web » Programando para Internet » PHP »

insertar llave foranea en un formulario en php

Estas en el tema de insertar llave foranea en un formulario en php en el foro de PHP en Foros del Web. Que tal buen dia, estoy programando en php y mysql soy nuevo en esto y me he atorado con una en una parte bueno les ...
  #1 (permalink)  
Antiguo 06/03/2013, 19:38
 
Fecha de Ingreso: marzo-2013
Mensajes: 10
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta insertar llave foranea en un formulario en php

Que tal buen dia, estoy programando en php y mysql soy nuevo en esto y me he atorado con una en una parte bueno les explico:

Tengo una tabla de empleado con los campos [odigo_empleado pk ,nombre, y categoria_empleado] estos ya estan dados de alta.

Segunda tabla que es captura en donde el usuario captura los datos, está tabla contiene los siguientes campos [folio_botela pk, numero_empleado FK ,nombre,categoria, trabajo que desempeño , en donde tabajo y otros campos ]


lo que quiero hacer es que cuando esté capturando el usuario, lo de la tabla de captura, que el numero_empleado que llave foranea de empleados le aparesca por en un texbox, de acuerdo al nombre del empleado que le ponga, pienso tal ves realizando una consulta de que nombre puso y compare si existe y jalar su ide pero no tengo idea como hacerlo hojale me pudieran ayudar. o tal ves aportar con otra propuesta mejo

este es el archivo guardar.php

//aca se supone que hago la consulta selecionando el nombre y el codigo_empleado para que me muestre el codigo_empleado, pero me muestra solamente el primero de mi tabla

$consulta20="SELECT nombre,numero_empleado from empleados,captura where empleados.numero_empleado = captura.num_empleados ";
$numero= mysql_query($consulta20);
$resultado = mysql_fetch_array($numero);

$pago = $resultado['numero_empleado'];

//pago la cual inserto a la base de datos, con el numero de empleado,pero me insserta el primero de mi tabla


$insertar = mysql_query("INSERT INTO captura (categoria,compania, folio,fecha,campo,pozo,tipservicio,categoriatrabaj a,pruea,prueb,pruec,prujuntas,lineas,llaves,corte, soldadura,tiempoesp,diferencia,opsuspendida, preventores,muelle,taping,instavalvula,tapingchivo ,tapinggrande,num_empleados,tota,guillotina) VALUES ('{$categoria}','{$compania}', '{$folio}','{$fecha}','{$campo}','{$pozo}','{$perf ilTexto}','{$nombre}','{$pruea}','{$prueb}','{$pru ec}','{$pruejunta}','{$lineas}','{$llaves}','{$cor te}','{$soldadura}','{$tiempoesp}','{$diferencia}' ,'{$operasuspe}','{$preventore}','{$muelle}','{$ta pping}','{$instval}','{$tapichico}','{$tapigrande} ','{$pago}','{$total}','{$guillotina}')", $conexion);

if (!$insertar) {
die("Fallo en la insercion de registro en la Base de Datos: " . mysql_error());
}

espero me puedan ayudar o darme una propuesta por favor
  #2 (permalink)  
Antiguo 07/03/2013, 06:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: insertar llave foranea en un formulario en php

Tienes un error de diseño de la base de datos. Si tienes nombre, y categoria_empleado en la tabla de empleado no tienes que guardarlos en la tabla captura puesto que ya tienes el numero_empleado que precisamente es FK entiendo que referenciando a odigo_empleado la PK de la otra tabla.

Solo tienes que guaradr el numero_empleado y si luego tienes que listar el contenido de la tabla captura junto con el nombre del empleado usa un INNER JOIN para mostrar los datos de las dos tablas combinados.

Código MySQL:
Ver original
  1. SELECT c.folio_botela,
  2.              c.numero_empleado,
  3.              e.nombre,
  4.              e.categoria,
  5.             c.trabajo que desempeño , en donde tabajo y otros campos de c o de e
  6. FROM captura c INNER JOIN empledo e ON c.numero_empleado=e.odigo_empleado
  7. WHERE ....

Resumiendo no guardes nunca dos veces la misma información en la bbdd, puede que eso te obligue a trabajar con consultas un poco mas complicadas pero te garantiza que nunca tendràs problemas de coeherencia en la bbdd.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 07/03/2013 a las 07:01
  #3 (permalink)  
Antiguo 07/03/2013, 13:02
 
Fecha de Ingreso: marzo-2013
Mensajes: 10
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: insertar llave foranea en un formulario en php

muchas gracias quimfv, por haber constestado voy checar tu sujerencia
  #4 (permalink)  
Antiguo 07/03/2013, 14:53
 
Fecha de Ingreso: marzo-2013
Mensajes: 10
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta Respuesta: insertar llave foranea en un formulario en php

ya checando los registros de mi tabla empleados, tengo un aprox 40 empleados, dados de alta y si por ejemplo quiero captura un empleado al momento de poner el numero_empleado el usuario no va saber que numero_empleados es, nadamas sabe nombre y que lo que realizó y despues de guardar tengo que mostrar el trabajo que realizó con su total...

no se si me entiendas..
  #5 (permalink)  
Antiguo 08/03/2013, 02:06
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: insertar llave foranea en un formulario en php

Totdo depende de como lo este montando si se elige el empleado con un input type="select" podrà ver el nombre del empleado y que el value de la optin sea el codigo ....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: formulario, llave, mysql, registro, select, tabla
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 23:10.