Foros del Web » Programando para Internet » PHP »

Consulta sobre como grabar en 2 tablas

Estas en el tema de Consulta sobre como grabar en 2 tablas en el foro de PHP en Foros del Web. Hola amigos, tengo una consulta para ustedes, tengo un php que me graba los datos de Una Persona Fisica y quiero que este mismo php ...
  #1 (permalink)  
Antiguo 03/08/2009, 11:18
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Consulta sobre como grabar en 2 tablas

Hola amigos, tengo una consulta para ustedes, tengo un php que me graba los datos de Una Persona Fisica y quiero que este mismo php me permita grabar los datos del credito que recibe, el tema pasa porque tengo separado para consultas por un lado la tabla de los datos de la Persona Fisica y por el otro la de los Creditos, lo que necesito hacer es que en un mismo formulario cuando doy de alta la PF pueda dar de alta el Credito de esta misma.

Les pego aqui mi php para que lo vean:

Formulario de alta de la PF: (me falta agregar los campos del credito)

Código PHP:
<FORM METHOD="POST" ACTION="insert_pf.php"

<
table align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="75%" id="AutoNumber1" height="214"
  <
tr bgcolor="#CCCCCC"
    <
td height="19" colspan="6"><span class="style1"><font face="Verdana" size="1"
    
REGISTRO DE PERSONA FISICA:</font></span></td
  </
tr
  <
tr
    <
td height="19" colspan="6">&nbsp;</td
  </
tr
  <
tr
    <
td width="25%" height="24"><font face="Verdana" size="1">Apellido</font></td
    <
td width="1%" height="24">&nbsp;</td
    <
td width="28%" height="24"><INPUT NAME="apellido" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="24"><font face="Verdana" size="1">Nombre:</font></td
    <
td width="1%" height="24">&nbsp;</td
    <
td width="33%" height="24"><INPUT NAME="nombre" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Dirección:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="direccion" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Documento:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="numero_doc" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Teléfono:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="telefono" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Celular:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="celular" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Situación Laboral:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="situacion" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Ciudad:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="ciudad" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">CodPostal:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="cod_postal" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Mail:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="mail" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td height="19" colspan="6">&nbsp;</td
  </
tr
  <
tr bgcolor="#CCCCCC"
    <
td height="19" colspan="6">&nbsp;</td
  </
tr
  <
tr
    <
td height="19" colspan="6">&nbsp;</td
  </
tr
  <
tr
    <
td height="19" colspan="6"><div align="center"
          <
input name="Reset2" type="RESET" Value="Limpiar Datos">&nbsp;&nbsp
          <
INPUT NAME="boton2" TYPE="SUBMIT" VALUE="Grabar Datos"
    </
div></td
  </
tr
</
table
</
form
</
body
</
html

Y por ultimo el php que recibe los datos y los guarda:

Código PHP:

<?php
$con 
mysql_connect("localhost","user","pass");
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }

mysql_select_db("base_de_datos"$con);

$sql="INSERT INTO persona_fisica (apellido,nombre,direccion,numero_doc,telefono,celular,situacion,ciudad,cod_postal,mail)
VALUES
('$_POST[apellido]','$_POST[nombre]','$_POST[direccion]','$_POST[numero_doc]','$_POST[telefono]','$_POST[celular]','$_POST[situacion]','$_POST[ciudad]','$_POST[cod_postal]','$_POST[mail]')"
;

if (!
mysql_query($sql,$con))
  {
  die(
'Error: ' mysql_error());
  }
//echo "1 record added";

mysql_close($con);
header ("Location: index.php");
?>

Saludos y gracias por si alguien puede ayudarme
  #2 (permalink)  
Antiguo 03/08/2009, 12:44
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Consulta sobre como grabar en 2 tablas

alguien podria darme una mano porfa.


Gracias nuevamente
  #3 (permalink)  
Antiguo 03/08/2009, 12:51
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Consulta sobre como grabar en 2 tablas

Te sale algun error? o solo pretendes guardar la persona y el credito a la vez?

Si el credito es una tabla aparte de la persona fisica, se supone que la tabla credito debe tener una llave foranea de la tabla del FP

entonces guardas primero al FP y recuperas el id que acabas de registras en una variable con mysql_insert_id() y esa lo utilizas para guardar y relacionar la tabla credito. saludos
__________________
Quitenme la vida pero no la bebida.
  #4 (permalink)  
Antiguo 03/08/2009, 13:24
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Consulta sobre como grabar en 2 tablas

Mételo todo en el mismo formulario y en el php destino lo siguiente:

Código PHP:
<?php 
$con 
mysql_connect("localhost","user","pass"); 
if (!
$con
  { 
  die(
'Could not connect: ' mysql_error()); 
  } 

mysql_select_db("base_de_datos"$con); 

$sql="INSERT INTO persona_fisica (apellido,nombre,direccion,numero_doc,telefono,celular,situacion,ciudad,cod_postal,mail) 
VALUES 
('$_POST[apellido]','$_POST[nombre]','$_POST[direccion]','$_POST[numero_doc]','$_POST[telefono]','$_POST[celular]','$_POST[situacion]','$_POST[ciudad]','$_POST[cod_postal]','$_POST[mail]')"


if (!
mysql_query($sql,$con)) 
  { 
  die(
'Error: ' mysql_error()); 
  } 
//echo "1 record added"; 
$persona_id mysql_insert_id($con);
if (
$persona_id){
$sql "INSERT INTO creditos (persona_id,credito_campo1,credito_campo2) VALUES ('".$persona_id."','".$_POST['credito_campo1']."','".$_POST['credito_campo2']."')";
if (!
mysql_query($sql,$con)) 
  { 
  die(
'Error: ' mysql_error()); 
  } 
}
mysql_close($con); 
header ("Location: index.php"); 
?>
  #5 (permalink)  
Antiguo 03/08/2009, 13:27
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Consulta sobre como grabar en 2 tablas

para guardar datos en 2 tablas diferente lo unico que debes hacer es llamar al metodo 2 veces

Código PHP:
$resultado1 mysql_query"INSERT INTO tabla1...laralarala" );
$resultado2 mysql_query"INSERT INTO tabla2...laralarala" ); 
y seria...

PD: como recomendación paseate por acá XD
  #6 (permalink)  
Antiguo 03/08/2009, 14:03
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 18 años, 10 meses
Puntos: 10
Respuesta: Consulta sobre como grabar en 2 tablas

podrías leer mi respuesta no ?? y no postear dos veces lo mismo y además poco completo para lo que pregunta.
  #7 (permalink)  
Antiguo 03/08/2009, 14:04
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Consulta sobre como grabar en 2 tablas

oka gracias por las respuestas voy a probar a ver que sucede.

Saludos
  #8 (permalink)  
Antiguo 03/08/2009, 14:13
 
Fecha de Ingreso: julio-2009
Ubicación: .mysql_error ( XD )
Mensajes: 554
Antigüedad: 14 años, 9 meses
Puntos: 13
Respuesta: Consulta sobre como grabar en 2 tablas

Cita:
Iniciado por jorgivaz Ver Mensaje
podrías leer mi respuesta no ?? y no postear dos veces lo mismo y además poco completo para lo que pregunta.
Me pillaste, te ando copiando las respuestas!! XD




podrias ver la hora de los post y asi evitarias escribir comentarios ofensivos y sin sentido... pastel!

Última edición por Twonex; 03/08/2009 a las 14:19
  #9 (permalink)  
Antiguo 03/08/2009, 14:42
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Consulta sobre como grabar en 2 tablas

Bueno vuelvo a postear la ayuda porque no se si lo entendi bien o que pero no me funciono:

Asi quedaria mi php de carga de datos:

Código PHP:
<FORM METHOD="POST" ACTION="insert_pf.php"

<
table align="center" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="75%" id="AutoNumber1" height="214"
  <
tr bgcolor="#CCCCCC"
    <
td height="19" colspan="6"><span class="style1"><font face="Verdana" size="1"
    
REGISTRO DE PERSONA FISICA:</font></span></td
  </
tr
  <
tr
    <
td height="19" colspan="6">&nbsp;</td
  </
tr
  <
tr
    <
td width="25%" height="24"><font face="Verdana" size="1">Apellido</font></td
    <
td width="1%" height="24">&nbsp;</td
    <
td width="28%" height="24"><INPUT NAME="apellido" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="24"><font face="Verdana" size="1">Nombre:</font></td
    <
td width="1%" height="24">&nbsp;</td
    <
td width="33%" height="24"><INPUT NAME="nombre" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Dirección:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="direccion" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Documento:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="numero_doc" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Teléfono:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="telefono" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Celular:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="celular" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Situación Laboral:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="situacion" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Ciudad:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="ciudad" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">CodPostal:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="cod_postal" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Mail:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="mail" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr>
    <
td height="19" colspan="6">&nbsp;</td
  </
tr>
  <
tr bgcolor="#CCCCCC">
    <
td height="19" colspan="6"><span class="style4">REGISTRO DEL CREDITO </span></td
  </
tr>
  <
tr>
    <
td height="19" colspan="6">&nbsp;</td
  </
tr>
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Fecha de la Solicitud :</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="fecha_solicitud" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Documento:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="numero_doc" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Comercio:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="id_comercio" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Estado:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><label>
      <
select name="estado">
        <
option>MOROSO</option>
        <
option>INCOBRABLE</option>
      </
select>
      </
label></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Importe del Credito :</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="importe_credito" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
    <
td width="12%" height="19"><font face="Verdana" size="1">Cuotas : </font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="33%" height="19"><INPUT NAME="cuotas_credito" MAXLENGTH="100" TYPE="TEXT" VALUE=""></td
  </
tr
  <
tr
    <
td width="25%" height="19"><font face="Verdana" size="1">Observaciones:</font></td
    <
td width="1%" height="19">&nbsp;</td
    <
td width="28%" height="19"><INPUT NAME="observaciones" MAXLENGTH="1000" TYPE="TEXT" VALUE=""></td
   
  </
tr>  
  <
tr bgcolor="#CCCCCC"
    <
td height="19" colspan="6">&nbsp;</td
  </
tr
  <
tr
    <
td height="19" colspan="6">&nbsp;</td
  </
tr
  <
tr
    <
td height="19" colspan="6"><div align="center"
          <
input name="Reset2" type="RESET" Value="Limpiar Datos">&nbsp;&nbsp
          <
INPUT NAME="boton2" TYPE="SUBMIT" VALUE="Grabar Datos"
    </
div></td
  </
tr
</
table
</
form
Y asi quedaria mi insert:

Código PHP:
<?php 
$con 
mysql_connect("localhost","safsur","hobiague2475"); 
if (!
$con
  { 
  die(
'Could not connect: ' mysql_error()); 
  } 

mysql_select_db("safsur_com_ar_1"$con); 

$sql="INSERT INTO persona_fisica (apellido,nombre,direccion,numero_doc,telefono,celular,situacion,ciudad,cod_postal,mail) 
VALUES 
('$_POST[apellido]','$_POST[nombre]','$_POST[direccion]','$_POST[numero_doc]','$_POST[telefono]','$_POST[celular]','$_POST[situacion]','$_POST[ciudad]','$_POST[cod_postal]','$_POST[mail]')"


if (!
mysql_query($sql,$con)) 
  { 
  die(
'Error: ' mysql_error()); 
  } 
//echo "1 record added"; 

$creditos_tbl mysql_insert_id($con);
if (
$creditos_tbl){
$sql "INSERT INTO creditos_tbl (fecha_solicitud,numero_doc,id_comercio,estado,importe_credito,cuotas_credito,observaciones) VALUES 
('$_POST[fecha_solicitud]','$_POST[numero_doc]','$_POST[id_comercio]','$_POST[estado]','$_POST[importe_credito]','$_POST[cuotas_credito]','$_POST[observaciones]'')"


if (!
mysql_query($sql,$con)) 
  { 
  die(
'Error: ' mysql_error()); 
  } 
}
mysql_close($con); 
header ("Location: index.php"); 
?>

La cuestion es que solo me graba los primeros datos del formulario, o sea en la segunda tabla no lo hace, podrian darme una mano.

Gracias
  #10 (permalink)  
Antiguo 03/08/2009, 14:55
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Consulta sobre como grabar en 2 tablas

creo que tienes una comilla de más en tu segundo query... revisalo
__________________
Quitenme la vida pero no la bebida.
  #11 (permalink)  
Antiguo 03/08/2009, 15:06
 
Fecha de Ingreso: enero-2009
Mensajes: 246
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Consulta sobre como grabar en 2 tablas

que grande un espectaculo muchachos, muchas gracias por la ayuda.
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 02:08.