Foros del Web » Programando para Internet » PHP »

agregar un registro y su relacionado

Estas en el tema de agregar un registro y su relacionado en el foro de PHP en Foros del Web. buenos días, pretendo que la página de respuesta a un formulario agregue un registro a una tabla y otro registro a otra tabla que mantiene ...
  #1 (permalink)  
Antiguo 09/08/2005, 05:43
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
agregar un registro y su relacionado

buenos días, pretendo que la página de respuesta a un formulario agregue un registro a una tabla y otro registro a otra tabla que mantiene una relación uno a uno con la anterior, para ello utilizo este código, he probado algunas variantes pero en todas ellas obtengo resultados completamente inesperados, extraños, incomprensibles, no creo que merezca la pena entrar en detalles, este es el código.

$sql4 = "insert into personal (nombre,apellido,calle,cp,poblacion,nacimiento,sex o,sueldo) values('$nombre', '$apellido', '$calle', '$cp', '$poblacion', '$nacimiento', '$sexo', '$sueldo')";

// aquí obtengo el campo que será la clave externa de la tabla phpSP_users

$sql5 = "SELECT num_personal
FROM personal
WHERE nombre='$nombre' && apellido='$apellido' && calle='$calle' && cp='$cp' && poblacion='$poblacion' && nacimiento='$nacimiento' && sexo='$sexo' && sueldo='$sueldo'";

//aquí pretendo agregar el registro y es donde obtengo los resultados raros pero sin error.

$sql6 = "insert into phpSP_users (user,password,userlevel,num_personal) values('$user', '$password', '$userlevel', '$sql5')";

os agradecería cualquier comentario que ayude a salir del atolladero.
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
  #2 (permalink)  
Antiguo 09/08/2005, 07:26
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Como serian esos resultados raros?
  #3 (permalink)  
Antiguo 09/08/2005, 08:36
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
en primer lugar las variables '$user' y '$password' están vacías, la variable '$userlevel' se corresponde con un campo hidden del formulario que tiene valor 1 pero muestra el valor 2 en la página de respuesta y el registro no se agrega a la tabla phpSP_users.

cualquier cosa que se te ocurra me la comentas por favor.
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
  #4 (permalink)  
Antiguo 09/08/2005, 08:39
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Sólo se me ocurre que register_globals=On en php.ini, dime tu si es asi o no.
  #5 (permalink)  
Antiguo 09/08/2005, 08:42
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
¿De dónde estas obteniendo estos valores?

('$user', '$password', '$userlevel', '$sql5')

Saludos,
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #6 (permalink)  
Antiguo 09/08/2005, 09:39
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
contestando a claudiovega:

register_global está On

me funcionan muchas otras cosas, quiero decir que ese no es el problema, gracias.

contestando a Takitei:

las variables '$user', '$password', '$userlevel' corresponden a los campos del formulario que pide la página donde está el código este que no funciona

y la variable '$sql5' la tienes ahí delante, debajo de este comentario

// aquí obtengo el campo que será la clave externa de la tabla phpSP_users

gracias.
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
  #7 (permalink)  
Antiguo 09/08/2005, 11:33
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
¿Y qué resultados te da la consulta?... ¿inserta algo en la bd?... ¿devuelve algún error?. Sería de mucha ayuda que fueras más explícito a la hora de explicar tu problema.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #8 (permalink)  
Antiguo 10/08/2005, 02:38
 
Fecha de Ingreso: abril-2005
Ubicación: vivo donde puedo
Mensajes: 133
Antigüedad: 19 años
Puntos: 0
casi casi

he progresado algo al darme cuenta de que la consulta que obtiene la clave principal del registro que acabo de agregar -el registro padre- en realidad es una matriz de un elemento, el código para agregar el registro relacionado -el registro hijo- averiguando la clave principal del registro padre que acabo de agregar sería este.

// aquí averiguo la clave principal del registro padre que acabo de agregar

$query = "SELECT num_personal
FROM personal
WHERE nombre='$nombre' && apellido='$apellido' && calle='$calle' && cp='$cp' && poblacion='$poblacion' && nacimiento='$nacimiento' && sexo='$sexo' && sueldo='$sueldo'";

$sql5 = mysql_query($query) or die (mysql_error());

// aquí obtengo la matriz, que tiene un solo elemento

while($row=mysql_fetch_array($sql5))
{
$secundario = $row['num_personal'];
}

// aquí inserto el registro hijo

$sql6 = "insert into phpSP_users (user,password,userlevel,num_personal) values('$user', '$password', '$userlevel', '$secundario')";

// compruebo e informo al usuario

If ($res=send_sql($db,$sql6)) {
echo "<br><br>Se ha ejecutado el comando SQL";
echo "<br><br>Se ha agregado un usuario etc. etc. etc....";
}

de todas formas tengo que perfeccionarlo, mientras tanto espero vuestros comentarios que son siempre bien recibidos.
__________________
Visita mi página web.Carlos Zapata Company
Visita mi blog.
Únete a mi lista de correo.
--------------------------------------------------
La identidad no es lo que fuimos, ni lo que creemos que somos; la identidad es cómo miramos la mundo.

José Luis Rodríguez Zapatero, actual presidente del Gobierno español.
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 05:04.