Ayudar para guardar en BD
Hola nuevamente david, espero puedas ayudarme y no te complique con una pregunta muy larga, pero es por el código para que así puedas ayudarme de mejor manera. Tengo dos archivos, un html que contiene un formulario con 5 campos, donde el usuario ingresa un monto de un crédito, el numero de cuotas, la fecha del primer vencimiento, Valor cuota y el interés. El segundo archivo es un php que es llamado por el formulario, el cual tiene el siguiente código:
<table width="50%" border="0" cellpadding=3>
<tbody>
<tr>
<td align="center" bgcolor="#CCCCCC">Numero Cuota
</tr>
<td align="center" bgcolor="#CCCCCC">Capital
</tr>
<td align="center" bgcolor="#CCCCCC">Valor Cuota
</tr>
<td align="center" bgcolor="#CCCCCC">Interes
</tr>
<td align="center" bgcolor="#CCCCCC">Capital Pagado
</tr>
<td align="center" bgcolor="#CCCCCC">Valor Residual
</tr>
<?php
for ($i=1;$i<=$txtcuotas;$i++)
{
$intcuota=$txtcredito*$txttasa/100;
$cappagado=$txtvalcuota-$intcuota;
$valresi=$txtcredito-$cappagado;
echo "
<tr>
<td align=left> $i</td>
";
echo "
<td align=left>$txtcredito</td>
";
echo "
<td align=left>$txtvalcuota</td>
";
echo "
<td align=left>".number_format($intcuota,0)."</td>
";
echo "
<td align=middle>".number_format($cappagado,0)."</td>
";
echo "
<td align=middle>".number_format($valresi,0)."</td>
</tr>
";
$txtcredito=$valresi;
}
?>
Todo funciona a la perfección, el problema es que ahora todo el resultado generado necesito quede guardado en una tabla. La BD se llama SISTEMA y la tabla se llama Convenio y los campos son:
NCUOTA ->NUMERO DE CUOTA ($i)
CAPINI ->CAPITAL ($txtcredito)
VALCUOT ->VALOR CUOTA ($txtvalcuota)
INTERES ->INTERES O TASA ($intcuota)
CAPPAG -> CAPITAL PAGADO ($cappagado)
SALDO -> VALOR RESIDUAL ($valresi)
Yo coloque el siguiente código dentro del bucle for y comente todos lo echo de mis variables...
@ $db=mysql_pconnect("localhost","usuario","clave");
if (!$db) //si no se encuentra db
{
echo "Error en conexion a la BD";
exit;
}
for ($i=1;$i<=$txtcuotas;$i++)
{
$fecha=sumaDia($txtvencim,30, $i);
//echo "
<td align=left>".$txtvencim."</td>
";
//echo "
<td align=left>".$fecha."</td>
";
//$txtvencim=sumaDia($txtvencim,30);
//echo "
<td align=left>".date("$nuevafecha")."</td>
";
//echo "
<td align=left>".number_format($txtcredito,0)."</td>
";
//echo "
<td align=left>".number_format($txtvalcuota,0)."</td>
";
$intcuota=$txtcredito*$txttasa/100;
//echo "
<td align=left>".number_format($intcuota,0)."</td>
";
$cappagado=$txtvalcuota-$intcuota;
//echo "
<td align=middle>".number_format($cappagado,0)."</td>
";
$valresi=$txtcredito-$cappagado;
//echo "
<td align=middle>".number_format($valresi,0)."</td>
</tr>
";
$txtcredito=$valresi;
$consulta="INSERT INTO convenio VALUES('".$i."','".$txtcredito."','".$txtvalcuota."','".$intcuota."','".$cappagado."','".$valresi."')";
$resultado = mysql_query($consulta);
if (!$resultado) { die('Invalid query: ' . Mysql_error());}
}
Al momento de ejecutar me aparece el siguiente mensaje: Invalid query: Column count doesn't match value count at row 1.
Tambien probe este otro metodo, pero sucede lo mismo:
$consulta="INSERT INTO convenio (ncuota,fvenc,capital,valcuota,interes,cpagado,valresi) VALUES ('$_POST','$_POST[txtcredito]','$_POST[txtvalcuota]','$_POST[intcuota]','$_POST[cappagado]','$_POST[valresi]')";
Tengo un campo llamado id que es de autoincremento y que no menciono en el código, pero no se si esto tiene que ver. No se donde tengo el error...
Espero puedas ayudarme...
<table width="50%" border="0" cellpadding=3>
<tbody>
<tr>
<td align="center" bgcolor="#CCCCCC">Numero Cuota
</tr>
<td align="center" bgcolor="#CCCCCC">Capital
</tr>
<td align="center" bgcolor="#CCCCCC">Valor Cuota
</tr>
<td align="center" bgcolor="#CCCCCC">Interes
</tr>
<td align="center" bgcolor="#CCCCCC">Capital Pagado
</tr>
<td align="center" bgcolor="#CCCCCC">Valor Residual
</tr>
<?php
for ($i=1;$i<=$txtcuotas;$i++)
{
$intcuota=$txtcredito*$txttasa/100;
$cappagado=$txtvalcuota-$intcuota;
$valresi=$txtcredito-$cappagado;
echo "
<tr>
<td align=left> $i</td>
";
echo "
<td align=left>$txtcredito</td>
";
echo "
<td align=left>$txtvalcuota</td>
";
echo "
<td align=left>".number_format($intcuota,0)."</td>
";
echo "
<td align=middle>".number_format($cappagado,0)."</td>
";
echo "
<td align=middle>".number_format($valresi,0)."</td>
</tr>
";
$txtcredito=$valresi;
}
?>
Todo funciona a la perfección, el problema es que ahora todo el resultado generado necesito quede guardado en una tabla. La BD se llama SISTEMA y la tabla se llama Convenio y los campos son:
NCUOTA ->NUMERO DE CUOTA ($i)
CAPINI ->CAPITAL ($txtcredito)
VALCUOT ->VALOR CUOTA ($txtvalcuota)
INTERES ->INTERES O TASA ($intcuota)
CAPPAG -> CAPITAL PAGADO ($cappagado)
SALDO -> VALOR RESIDUAL ($valresi)
Yo coloque el siguiente código dentro del bucle for y comente todos lo echo de mis variables...
@ $db=mysql_pconnect("localhost","usuario","clave");
if (!$db) //si no se encuentra db
{
echo "Error en conexion a la BD";
exit;
}
for ($i=1;$i<=$txtcuotas;$i++)
{
$fecha=sumaDia($txtvencim,30, $i);
//echo "
<td align=left>".$txtvencim."</td>
";
//echo "
<td align=left>".$fecha."</td>
";
//$txtvencim=sumaDia($txtvencim,30);
//echo "
<td align=left>".date("$nuevafecha")."</td>
";
//echo "
<td align=left>".number_format($txtcredito,0)."</td>
";
//echo "
<td align=left>".number_format($txtvalcuota,0)."</td>
";
$intcuota=$txtcredito*$txttasa/100;
//echo "
<td align=left>".number_format($intcuota,0)."</td>
";
$cappagado=$txtvalcuota-$intcuota;
//echo "
<td align=middle>".number_format($cappagado,0)."</td>
";
$valresi=$txtcredito-$cappagado;
//echo "
<td align=middle>".number_format($valresi,0)."</td>
</tr>
";
$txtcredito=$valresi;
$consulta="INSERT INTO convenio VALUES('".$i."','".$txtcredito."','".$txtvalcuota."','".$intcuota."','".$cappagado."','".$valresi."')";
$resultado = mysql_query($consulta);
if (!$resultado) { die('Invalid query: ' . Mysql_error());}
}
Al momento de ejecutar me aparece el siguiente mensaje: Invalid query: Column count doesn't match value count at row 1.
Tambien probe este otro metodo, pero sucede lo mismo:
$consulta="INSERT INTO convenio (ncuota,fvenc,capital,valcuota,interes,cpagado,valresi) VALUES ('$_POST','$_POST[txtcredito]','$_POST[txtvalcuota]','$_POST[intcuota]','$_POST[cappagado]','$_POST[valresi]')";
Tengo un campo llamado id que es de autoincremento y que no menciono en el código, pero no se si esto tiene que ver. No se donde tengo el error...
Espero puedas ayudarme...
Respuesta de davidcortesb
1