Ver Mensaje Individual
  #16 (permalink)  
Antiguo 04/05/2011, 17:25
angelfcm
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: insertar en datatabase solo filas no vacias...

Ha ya te entendí jeje, bueno te dejo lo siguiente pruebalo!

Primero : al archivo del formulario agregale éste script(o mete la función en un script ya creado):

Código Javascript:
Ver original
  1. <script>
  2. function buscarChecks(Form){
  3.   var numchecks=0;
  4.   for(x=0;x<Form.childNodes.length;x++){
  5.     var nodo=Form.childNodes[x];
  6.     if(nodo.type=='checkbox' && /^c([0-9]+)$/i.test(nodo.name))
  7.       numchecks++ }
  8.   Form.numchecks.value=numchecks;
  9. }
  10. </script>
Segundo: nuevamente en el archivo del formulario, agrega el evento onsubmit a tu etiqueta <form> y mete la función del script de arriba, es decir, buscarChecks(this)(no borres this, dejalo), mas o menos quedaría tu etiqueta <form> así:
Código:
<form action="AQUI TU ARCHIVO A DÓNDE SE ENVÍA" method="post" onsubmit="buscarChecks(this)">
Tercero: agrega éste input dentro del formulario ( de la etiqueta <form>):
Código:
<input type="hidden" name="numchecks" value="0" />
Por último: reemplaza tu archivo que procesa los datos (dónde insertas F y D) por el siguiente:
Código PHP:
Ver original
  1. <?php
  2.  include ("conexion.php");
  3. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4. # post & checkbox
  5.  
  6.  $nota3 = $_POST['nota3'];
  7.  $val = $_POST['val'];
  8.  $juicio = $_POST['juicio'];
  9.  $numChecks=$_POST[numchecks];
  10.  $maxChecks=14;
  11.  $consultaChecks="";
  12.  
  13.  for($x=1;$x<=$maxChecks;$x++){
  14.   if($x<=$numChecks)
  15.     eval("\$actual=\$_POST[c".$x."]?'F':'D';");
  16.   else $actual="";
  17.   if($consultaChecks)
  18.    $consultaChecks.=", c".$x."='".$actual."'";
  19.   else $consultaChecks="c1='".$actual."'";
  20.  }
  21. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
  22. # valoracion
  23. $val=($nota3!="" && $nota3<3.0)?
  24.       "bajo":
  25.       (
  26.        ($nota3>=3.0 && $nota3<=3.6)?
  27.        "básico":
  28.        (
  29.         ($nota3>=3.7 && $nota3<=4.3)?
  30.         "alto":
  31.         "superior"
  32.        )
  33.       );
  34.  
  35. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  36. # update
  37.  
  38. $sql = "UPDATE SEXTO_A_MAT SET ".$consultaChecks.",
  39.        nota3='$nota3', val='$val' , juicio='$juicio'  
  40.        WHERE id=1";
  41. $result = mysql_query($sql);  
  42.  
  43. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  44.  
  45. echo "<center> datos insertados con exito </center>";
  46. ?>
Pruebalo estoy seguro que es lo que quieres, de que funciona funciona no tienes errores así que asegurate que lo copias bien.

Saludos