Foros del Web » Programando para Internet » PHP »

no graba en la bd!!!

Estas en el tema de no graba en la bd!!! en el foro de PHP en Foros del Web. Que tal, estuve tratando de arreglar un poco el codigo y no que modifique, pero ahora me sale el mensaje que no guarda en la ...
  #1 (permalink)  
Antiguo 23/10/2012, 09:12
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
no graba en la bd!!!

Que tal, estuve tratando de arreglar un poco el codigo y no que modifique, pero ahora me sale el mensaje que no guarda en la bd y realemente es asi y no encuentro el error!!!!
Código PHP:
Ver original
  1. <!DOCTYPE html>
  2.  
  3. <html>
  4.  
  5. <head>
  6.  
  7. <title>Sistema Contable</title>
  8.  
  9. <meta charset="UTF-8"><!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
  10.  
  11.  
  12.  
  13. <script type="text/javascript" src="js/prettify.js"></script><!-- PRETTIFY -->                                  
  14.  
  15. <script type="text/javascript" src="js/kickstart.js"></script><!--Aca va el script para pasar de campo con la tecla ENTER-->    
  16.  
  17. <script type="text/javascript" src="calcula.js"> </script>
  18.  
  19.                              
  20.  
  21. <link rel="stylesheet" type="text/css" href="css/kickstart.css" media="all"><!-- KICKSTART -->                  
  22.  
  23. <link rel="stylesheet" type="text/css" href="style.css" media="all"><!-- CUSTOM STYLES --><!-- Agrega campos dinamicamente -->    
  24.  
  25. <link rel="shortcut icon" href="Folders-OS-Homegroup-Metro.ico">                                      
  26.  
  27.  
  28.  
  29.     <script type="text/javascript">
  30.  
  31.         var Aux1 = 0;
  32.  
  33.         function AgregarCampos(ID,VAL)
  34.  
  35.         {
  36.  
  37.             Aux1++;
  38.  
  39.             campo = '<input type="hidden" id="'+ID+'"  name="'+ID+'"  value="'+VAL+'" />';
  40.  
  41.             $("#orden").append(campo);
  42.  
  43.         }
  44.  
  45.  
  46.  
  47.         function Existe(IDC)
  48.  
  49.         {
  50.  
  51.             if(IDC=='' || IDC==undefined || IDC==NaN || IDC==null)
  52.  
  53.              {
  54.  
  55.                 return false;
  56.  
  57.              }
  58.  
  59.              else
  60.  
  61.              {
  62.  
  63.  
  64.  
  65.                 return true;
  66.  
  67.              }  
  68.  
  69.          }
  70.  
  71.  
  72.  
  73.         function Ordenoo()
  74.  
  75.         {
  76.  
  77.             var Campos = new Array();
  78.  
  79.             $("#distribucion tr").each(function (Aux2)
  80.  
  81.             {
  82.  
  83.                 $(this).children("td").each(function (Aux3) {
  84.  
  85.                     switch (Aux3) {
  86.  
  87.                         case 0:
  88.  
  89.                             Aux4 = $(this).text();
  90.  
  91.                             if(!Existe(Campos[Aux4])){ Campos[Aux4] = 0; }
  92.  
  93.                         break;
  94.  
  95.                         case 1:
  96.  
  97.                             Campos[Aux4] = parseFloat(Campos[Aux4])+parseFloat($(this).text());
  98.  
  99.                         break;
  100.  
  101.                     }
  102.  
  103.                 });
  104.  
  105.             });
  106.  
  107.  
  108.  
  109.             for(var Aux5 in Campos)
  110.  
  111.             {
  112.  
  113.                 AgregarCampos(Aux5,Campos[Aux5]);
  114.  
  115.             }
  116.  
  117.             $("#orden").submit();
  118.  
  119.            
  120.  
  121.             function MostrarDiv()
  122.  
  123.             {
  124.  
  125.               var fr = document.getElementById('we')
  126.  
  127.               fr.setAttribute('class','show');
  128.  
  129.             }
  130.  
  131.             MostrarDiv();
  132.  
  133.         }
  134.  
  135.     </script>
  136.  
  137.  
  138.  
  139. <?php include("menu.php"); ?>
  140.  
  141. </head>
  142.  
  143.  
  144.  
  145. <body>
  146.  
  147. <div class="hide" id="we">
  148.  
  149. <div class="notice success" id="flotante"><span class="icon medium" data-icon="C"></span>Guardado con exito!!!!<a href="#close" class="icon close" data-icon="x"></a>
  150.  
  151. </div>
  152.  
  153. </div>
  154.  
  155.  
  156.  
  157.     <a id="top-of-page"></a>
  158.  
  159.    
  160.  
  161.     <div id="wrap" class="clearfix">
  162.  
  163.     <br />
  164.  
  165. <!--Aca pongo la fecha-->
  166.  
  167. <div id="fecha">
  168.  
  169.   <?php $d=date("w");
  170.  
  171.   $l=date("d/m/Y");
  172.  
  173.   switch ($d)
  174.  
  175.   {
  176.  
  177.   case 1:
  178.  
  179.   echo "Hoy es Lunes, ".$l;
  180.  
  181.   break;
  182.  
  183.   case 2:
  184.  
  185.   echo "Hoy es Martes, ".$l;
  186.  
  187.   break;
  188.  
  189.   case 3:
  190.  
  191.   echo "Hoy es Miercoles, ".$l;
  192.  
  193.   break;
  194.  
  195.   case 4:
  196.  
  197.   echo "Hoy es Jueves, ".$l;
  198.  
  199.   break;
  200.  
  201.   case 5:
  202.  
  203.   echo "Hoy es Viernes, ".$l;
  204.  
  205.   break;
  206.  
  207.   case 6:
  208.  
  209.   echo "Hoy es Sabado, ".$l;
  210.  
  211.   break;
  212.  
  213.   case 0:
  214.  
  215.   echo "Hoy es Domingo, ".$l;
  216.  
  217.   break;
  218.  
  219.   }
  220.  
  221. ?>
  222.  
  223. </div>
  224.  
  225. <!--Aca termina la fecha-->
  226.  
  227.  
  228.  
  229. <div align="center">
  230.  
  231. Expediente
  232.  
  233. <input class="col_1" value="" name="caract" type="text">
  234.  
  235. -<input class="col_1"  value="" name="num" type="text">
  236.  
  237. / <input class="col_1"  value="" name="anio" type="text">
  238.  
  239. -<input class="col_1" value="" name="alc" type="text">
  240.  
  241. </div>
  242.  
  243.  
  244.  
  245. <hr class="alt1">
  246.  
  247.  
  248.  
  249. <div style="text-align: center;">
  250.  
  251. <table id="tablaUsuarios" border="2" name="tablaprog" >
  252.  
  253. <tbody><tr style="text-align: center;" id="fila">
  254.  
  255.     <td style="width: 268px; text-align: center;">Programa</td>
  256.  
  257.     <td style="width: 331px; text-align: center;">Monto</td>
  258.  
  259.     <td style="width: 338px; text-align: center;">Acciones</td>
  260.  
  261. </tr>
  262.  
  263. <tr>
  264.  
  265.     <td style="width: 268px; text-align: left;">    <!--aca va el select inteligente-->
  266.  
  267.     <select class="fancy" name="programa" id="sel">
  268.  
  269. <?php
  270.  
  271. include_once('cone.php');
  272.  
  273. Conectate();
  274.  
  275. $cons=mysql_query("select idprograma,programa from programa");
  276.  
  277. while($r=mysql_fetch_array($cons))
  278.  
  279. {
  280.  
  281.   echo "<option class='fancy' value='$r[programa]'>$r[idprograma] | $r[programa]</option>";  
  282.  
  283. }
  284.  
  285. ?>
  286.  
  287.     </select></td>
  288.  
  289.     <td style="width: 331px; text-align: center;"><input id="text1" name="montos" type="text"></td>
  290.  
  291.     <td style="width: 338px;">
  292.  
  293.         <input class="small orange" onclick="calcula()" value="Calcula" type="button">  
  294.  
  295.             <input class="small pink" onclick="Ordenoo()" value="Graba" type="button">
  296.  
  297.         <a class="button pop" href="#ABAJO">Abajo</a>
  298.  
  299.     </td>
  300.  
  301. </tr>
  302.  
  303. </tbody></table>
  304.  
  305. </div>
  306.  
  307. <!--</form>-->
  308.  
  309.  
  310.  
  311. <!-- HR.alt2 -->
  312.  
  313. <hr class="alt2">
  314.  
  315. <!-- /HR.alt2 -->
  316.  
  317.  
  318.  
  319. <!-- Tabla para mostrar monto de la preliminar -->
  320.  
  321. <table>
  322.  
  323. <tbody><tr>
  324.  
  325.     <td style="width: 388px; text-align: right;"><span style="font-weight: bold;">MONTO TOTAL</span><br> </td>
  326.  
  327.     <td style="width: 155px; text-align: center; font-weight: bold;" id="aca"><br></td>
  328.  
  329.     <th style="width: 390px;">MONTO TOTAL<br></th>
  330.  
  331.        </tr>
  332.  
  333. </tbody>
  334.  
  335. </table>
  336.  
  337. <!-- /Tabla para mostrar monto de la preliminar -->
  338.  
  339.  
  340.  
  341.  
  342.  
  343. <!-- HR.alt1 -->
  344.  
  345. <hr class="alt1">
  346.  
  347.  
  348.  
  349.  
  350.  
  351.   <!-- Pestañas con distribucion y mas opciones -->
  352.  
  353. <ul class="tabs center">
  354.  
  355. <li><a href="#tabc1">Resultado de la distribucion</a></li>
  356.  
  357. </ul>
  358.  
  359.  
  360.  
  361. <div id="tabc1" class="tab-content">
  362.  
  363. <form action="pasajes.preliminar.carga.php" method="post" id="orden">  
  364.  
  365.    <table class="sortable" id="distribucion">
  366.  
  367.      <thead>
  368.  
  369.         <tr><th>PROGRAMA</th> <th>MONTO</th><th>ACCIONES</th></tr>
  370.  
  371.      </thead>
  372.  
  373.     <tbody>
  374.  
  375.       <!--  <tr id="linea"><td id="destino"></td><td id="plata"></td><td></td></tr>
  376.  
  377.         <tr><td>Joshua</td> <td>4325.63</td>    <td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>
  378.  
  379.         <tr><td>Peter</td><td>5698.44</td>  <td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>
  380.  
  381.         <tr><td>Mary</td><td>7654.82</td><td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>
  382.  
  383.         <tr><td>Gretty</td><td>6732.85</td><td><a href=""><span class="icon large pink" data-icon="T"></span></a></td></tr>-->
  384.  
  385.      </tbody>
  386.  
  387.        </table>
  388.  
  389.     </form>
  390.  
  391. </div>
  392.  
  393.  
  394.  
  395. </div>
  396.  
  397.  
  398.  
  399. <!-- END WRAP -->
  400.  
  401. <?php
  402.  
  403.  $link=mysql_connect("localhost","charly163","charly") or die("no se conecto");
  404.  
  405.  mysql_select_db("prueba",$link) or die("No encontro la base");
  406.  
  407.  foreach ($_POST as $clave => $valor)
  408.  
  409.  {
  410.  
  411.  mysql_query("INSERT INTO preliminar VALUES('$clave','$valor');") or die("NO SE GRABO EN LA BASE");
  412.  
  413.  }
  414.  
  415.  
  416.  ?>
  417.  
  418. <!-- ===================================== START FOOTER ===================================== -->
  419.  
  420. <div id="footer">
  421.  
  422. Sistema Contable 2012.<br>
  423.  
  424. <a id="link-top" href="#top-of-page">Arriba</a>
  425.  
  426. <a id="ABAJO"></a>
  427.  
  428. </div>
  429.  
  430. </body></html>
Ademas quisiera poder enviar a la tabla preliminar, la concatenacion de los campos caract, num, anio, y que se guarde en la columna expediente, junto con lo que estoy enviando (que no funciona) el destino y el monto. Gracias!!!
  #2 (permalink)  
Antiguo 23/10/2012, 09:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no graba en la bd!!!

Imprime el valor de mysql_error() después de ejecutar la consulta para que conozcas la razón del fallo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/10/2012, 10:55
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: no graba en la bd!!!

la verdad no entiendo donde esta el error,
mysql_query("INSERT INTO preliminar VALUES('$clave','$valor');") or die("NO SE GRABO EN LA BASE"); ??
  #4 (permalink)  
Antiguo 23/10/2012, 11:08
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: no graba en la bd!!!

Pateketrueke tiene razón, debes poner:
mysql_query("INSERT INTO preliminar VALUES('$clave','$valor');") or diemysql_error()); y te dirá qué tipo de error tienes. A mí me ha pasado de poner nombres de tablas mal o pequeños errores. Prueba y a ver qué mensaje te sale. Besos
  #5 (permalink)  
Antiguo 23/10/2012, 12:02
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: no graba en la bd!!!

Lo hice y me tira este error
"Column count doesn't match value count at row 1"
  #6 (permalink)  
Antiguo 23/10/2012, 12:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no graba en la bd!!!

Pues ahí lo tienes, no es un error de código php sino de tu consulta de sql.

Hay dos formas de insertar registros.

1. Si vas a ingresar los valores exactos puedes omitir la definición de columnas.
Cita:
INSERT INTO tabla VALUES(a, b, c)
Esto suponiendo que sólo tienes tres columnas, y que los valores introducidos respetan el orden de la definición de tus columnas.

2. Si vas a ingresar los valores en diferente orden, o en menor cantidad a la definida en tu tabla.
Cita:
INSERT INTO tabla(col1, col2, col3) VALUES(x, y, z)
Esto suponiendo que tienes mas columnas en tu tabla, en algunos casos es porque no se debe especificar valor alguno para un auto_incremente, etc.

¿Ahora entiendes lo que sucede?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 23/10/2012, 12:09
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: no graba en la bd!!!

Listo ya encontre el error
mysql_query("INSERT INTO preliminar(programa, monto) VALUES('$clave','$valor');") or die(mysql_error());
agregue preliminar(programa, monto) es decir especifique que campos seran los insertados.
Bien y ahora como hago para agregar en esa linea de la tabla con el 1er campo (programa) y el 2do (monto); agregar concatenado los valores de los input(caract, num, anio) en el campo expediente de la 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 03:30.