Ayuda con insert
Hola nuevamente... Espero no descartes mi pregunta porque el código que expondré es un poco largo pero el problema que tengo no es complicado pero no he logrado encontrar la falla. Todo este código lo he logrado gracias a personas como tu que me han ayudado con un pequeño emujon en esto del aprendizaje de php, de quenes estaré eternamente agradecida.
El problema es que debo guardar datos en 2 tablas... En el primer insert guarda la info en la tabla notavtas y guardo el id en una variable... Luego en un bucle for genero las cuotas de la ventas o crédito y utilizo la variable con el id de la primera consulta... El problema es que solo me guarda información en la primera tabla y no en la segunda... Y los mysql_error no me indican nada... Aquí va el código...
<?php
$db=mysql_pconnect("localhost","uno","1234");
if (!$db)
{
echo "Error en conexion a la BD";
exit;
}
mysql_select_db("prueba", $db);
$i=0;
ini_set('display_errors' , 1 );
error_reporting(E_ALL);
function sumaDia($fecha,$dia,$cont)
{
list($day,$mon,$year) = explode('/',$fecha);
if ( $mon == 2 )
{
}
return date('d/m/Y',mktime(0,0,0,$mon + $cont ,0,$year));
}
$fechavta=$txtfecha;
$fechavta = explode('/',$fechavta);
$fechavta = $fechavta[2] . '-' . $fechavta[1] . '-' . $fechavta[0];
$fechavenc = $_POST['txtvencim'];
$fechavenc = explode('/', $fechavenc);
$fechavenc = $fechavenc[2] . '-' . $fechavenc[1] . '-' . $fechavenc[0];
$consulta1="INSERT INTO notavta2 (numntavta,fechavta,rutcli,dv,nomcli,apecli,dircli,ciucli,fono,vendedor,clasevh,marcavh,modelvh,aniovh,colorvh,patentevh,valor,pie,saldo,tipodoc,tranfer,gastos,prenda,monto_finan,cantcuotas,valor_cuota,vencicuota,tasa,obs) VALUES ('$_POST[txtnotavta]','$fechavta','$_POST[txtrut]','$_POST[txtdv]','$_POST[txtnombre]','$_POST[txtape]','$_POST[txtdir]','$_POST[txtciud]','$_POST[txtfono]','$_POST[txtvend]','$_POST[txtclase]','$_POST[txtmarca]','$_POST[txtmodelo]','$_POST[txtanio]','$_POST[txtcolor]','$_POST[txtpatente]','$_POST[txtvalor]','$_POST[txtpie]','$_POST[txtsaldo]','$_POST[txtdocu]','$_POST[txttransf]','$_POST[txtgastos]','$_POST[txtprenda]','$_POST[txtcredito]','$_POST[txtcuotas]','$_POST[txtvalcuota]','$fechavenc','$_POST[txttasa]','$_POST[txtobs]')";
$id_nota=mysql_insert_id();
$resultado1 = mysql_query($consulta1);
if (!$resultado1) { die('Invalid query: ' . Mysql_error());}
for ($i=1;$i<=$txtcuotas;$i++)
{
$fecha=sumaDia($txtvencim,30, $i);
if(strlen($fecha) == 10){
$day = substr($fecha, 0,2);
$month = substr($fecha,3,2);
$year = substr($fecha, 6,4);
}
$day = ((int) $day < 9) ? '0' . $day : $day ;
$fecha2=($year."/".$month."/".$day);
$intcuota=$txtcredito*$txttasa/100;
$cappagado=$txtvalcuota-$intcuota;
$valresi=$txtcredito-$cappagado;
$txtcredito=$valresi;
$consulta2="INSERT INTO cuotas (idnotavta,numcuota,fec_venc,cap_insol,val_cuota,int_cuota,cap_pagado,deuda_resi,id_status_cuota) VALUES ('$id_nota','$i','$fecha2','$_POST[txtcredito]','$_POST[txtvalcuota]','$intcuota','$cappagado','$valresi','2')";
echo $consulta2;
$resultado2 = mysql_query($consulta2);
if (!$resultado2) { die('Invalid query: ' . Mysql_error());}
}
?>
Si el código de los insert los ejecuto por separado, funcionan perfectamente, excepto si en el segundo insert no considero el id de la nota de venta...
Espero puedas ayudarme en esto una vez más...
Atenta a tus comentarios...;)
El problema es que debo guardar datos en 2 tablas... En el primer insert guarda la info en la tabla notavtas y guardo el id en una variable... Luego en un bucle for genero las cuotas de la ventas o crédito y utilizo la variable con el id de la primera consulta... El problema es que solo me guarda información en la primera tabla y no en la segunda... Y los mysql_error no me indican nada... Aquí va el código...
<?php
$db=mysql_pconnect("localhost","uno","1234");
if (!$db)
{
echo "Error en conexion a la BD";
exit;
}
mysql_select_db("prueba", $db);
$i=0;
ini_set('display_errors' , 1 );
error_reporting(E_ALL);
function sumaDia($fecha,$dia,$cont)
{
list($day,$mon,$year) = explode('/',$fecha);
if ( $mon == 2 )
{
}
return date('d/m/Y',mktime(0,0,0,$mon + $cont ,0,$year));
}
$fechavta=$txtfecha;
$fechavta = explode('/',$fechavta);
$fechavta = $fechavta[2] . '-' . $fechavta[1] . '-' . $fechavta[0];
$fechavenc = $_POST['txtvencim'];
$fechavenc = explode('/', $fechavenc);
$fechavenc = $fechavenc[2] . '-' . $fechavenc[1] . '-' . $fechavenc[0];
$consulta1="INSERT INTO notavta2 (numntavta,fechavta,rutcli,dv,nomcli,apecli,dircli,ciucli,fono,vendedor,clasevh,marcavh,modelvh,aniovh,colorvh,patentevh,valor,pie,saldo,tipodoc,tranfer,gastos,prenda,monto_finan,cantcuotas,valor_cuota,vencicuota,tasa,obs) VALUES ('$_POST[txtnotavta]','$fechavta','$_POST[txtrut]','$_POST[txtdv]','$_POST[txtnombre]','$_POST[txtape]','$_POST[txtdir]','$_POST[txtciud]','$_POST[txtfono]','$_POST[txtvend]','$_POST[txtclase]','$_POST[txtmarca]','$_POST[txtmodelo]','$_POST[txtanio]','$_POST[txtcolor]','$_POST[txtpatente]','$_POST[txtvalor]','$_POST[txtpie]','$_POST[txtsaldo]','$_POST[txtdocu]','$_POST[txttransf]','$_POST[txtgastos]','$_POST[txtprenda]','$_POST[txtcredito]','$_POST[txtcuotas]','$_POST[txtvalcuota]','$fechavenc','$_POST[txttasa]','$_POST[txtobs]')";
$id_nota=mysql_insert_id();
$resultado1 = mysql_query($consulta1);
if (!$resultado1) { die('Invalid query: ' . Mysql_error());}
for ($i=1;$i<=$txtcuotas;$i++)
{
$fecha=sumaDia($txtvencim,30, $i);
if(strlen($fecha) == 10){
$day = substr($fecha, 0,2);
$month = substr($fecha,3,2);
$year = substr($fecha, 6,4);
}
$day = ((int) $day < 9) ? '0' . $day : $day ;
$fecha2=($year."/".$month."/".$day);
$intcuota=$txtcredito*$txttasa/100;
$cappagado=$txtvalcuota-$intcuota;
$valresi=$txtcredito-$cappagado;
$txtcredito=$valresi;
$consulta2="INSERT INTO cuotas (idnotavta,numcuota,fec_venc,cap_insol,val_cuota,int_cuota,cap_pagado,deuda_resi,id_status_cuota) VALUES ('$id_nota','$i','$fecha2','$_POST[txtcredito]','$_POST[txtvalcuota]','$intcuota','$cappagado','$valresi','2')";
echo $consulta2;
$resultado2 = mysql_query($consulta2);
if (!$resultado2) { die('Invalid query: ' . Mysql_error());}
}
?>
Si el código de los insert los ejecuto por separado, funcionan perfectamente, excepto si en el segundo insert no considero el id de la nota de venta...
Espero puedas ayudarme en esto una vez más...
Atenta a tus comentarios...;)
Respuesta de apolinux
1
2 respuestas más de otros expertos
Respuesta de oyepez003
1
Respuesta
1