Foros del Web » Programando para Internet » PHP »

insertar en datatabase solo filas no vacias...

Estas en el tema de insertar en datatabase solo filas no vacias... en el foro de PHP en Foros del Web. Buen día para todos, otra vez aquí a pedir ayuda... Esta vez tengo que insertar en una base de datos el resultado de checkbox. Seleccionando ...
  #1 (permalink)  
Antiguo 03/05/2011, 08:02
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
insertar en datatabase solo filas no vacias...

Buen día para todos, otra vez aquí a pedir ayuda...
Esta vez tengo que insertar en una base de datos el resultado de checkbox.
Seleccionando el checkbox me inserta la letra "F" e no seleccionándolo inserta la letra "D".
Hasta aquí no tengo problema, resolví con un if.
Estos checkbox aparecen en una tabla html dinámica y son el resultado de la inserción de textos en la base de datos.
Tantos textos inserto en la base de datos, tantos checkbox aparecen el la tabla dinamica. también aquí no hay problema.
El problema es cuando voy insertar los checkbox... con el if:

{
if( $c1 == "1" ) {
$c1 = "F";
} else {
$c1 = "D";
}

Lo que haces es insertar todas las filas de los checkbox y no solamente los que aparecen en la tabla dinámica.
Lo que quiero es que me inserte solamente las filas que aparecen en la tabla html dinámica y no todos.
Es difícil de explicar, pero si alguien tiene la voluntad y la paciencia de ayudarme lo agradezco mucho y aclararé todas las dudas.

Gracias de antemano
  #2 (permalink)  
Antiguo 03/05/2011, 08:41
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: insertar en datatabase solo filas no vacias...

Pon el codigo que usas para elegir a los checkbox
__________________
I am Doyle please insert code.
  #3 (permalink)  
Antiguo 03/05/2011, 08:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: insertar en datatabase solo filas no vacias...

Gracias doylelives por la paciencia...el codigo que inserta es:

<td>"; if($row2['ob1'] != ""){ echo "<input type='checkbox' name=c1 value=1 >"; } else{ echo ""; } echo "</td>

donde $row2 es el select y ob1 es el texto que inserto; c1 es el checkbox que obtengo...espero sea claro, si no te explicaré mejor

gracias
  #4 (permalink)  
Antiguo 03/05/2011, 08:54
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: insertar en datatabase solo filas no vacias...

A ver tu dices que inserta todos los checkboxs que estan dentro de la tabla dinamica, si no que tambien otros checkbox (que estan fuera de la tabla dinamica).
Entonces quizas el problema venga por la forma en que recoges los valores de los checkbox.
Postea el codigo que usas para ontener los checkbox, antes del
Código Javascript:
Ver original
  1. if( $c1 == "1" ) {
  2. $c1 = "F";
  3. } else {
  4. $c1 = "D";
  5. }
__________________
I am Doyle please insert code.
  #5 (permalink)  
Antiguo 03/05/2011, 09:17
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: insertar en datatabase solo filas no vacias...

Yo inserto solo los checkbox que aparecen en la tabla dinamica..Por ejemplo se hay tres checkbox yo puedo seleccionar solo los tres, pero como en la base de datos hay hasta 14 filas de checkbox, el codigo de insercion me los inserta todos (lo que no seleciono me pone la letra "D" justamente. todo el codigo es:

Código PHP:
<?php header("Content-type:text/html;charset=ISO-8859-1");
//***************************************************************************
/* Realizamos la consulta SQL */
$sql"SELECT  e_nombre  FROM estudiantes WHERE (id=19)  ";

$resultmysql_query($sql) or die(mysql_error());
if(
mysql_num_rows($result)==0) die("No hay registros para mostrar");    
//**********************************************************************
$sql2"SELECT  ob1,  ob2,  ob3,  ob4,  ob5,  ob6,  ob7,  ob8,  ob9,  ob10,  ob11,  ob12,  ob13,  ob14  FROM objetivos WHERE id=6 ";
$result2mysql_query($sql2) or die(mysql_error());
if(
mysql_num_rows($result2)==0) die("No hay registros para mostrar");    
//*************************************************************************


echo "<table border=1 cellpadding=1 cellspacing=0>";
echo 
"<tr><th colspan=18><center>  GRUPO SEXTO A 'MATEMATICAS'</th><tr>";

# construyendo los encabezados de la tabla
echo " <th bgcolor=silver><font size=1 ><center>___________ESTUDIANTE___________</font></th>
<th bgcolor=silver><font size=1 ><center>01</font></th>
<th bgcolor=silver><font size=1 ><center>02</font></th>
<th bgcolor=silver><font size=1 ><center>03</font></th>
<th bgcolor=silver><font size=1 ><center>04</font></th>
<th bgcolor=silver><font size=1 ><center>05</font></th>
<th bgcolor=silver><font size=1 ><center>06</font></th>
<th bgcolor=silver><font size=1 ><center>07</font></th>
<th bgcolor=silver><font size=1 ><center>08</font></th>
<th bgcolor=silver><font size=1 ><center>09</font></th>
<th bgcolor=silver><font size=1 ><center>10</font></th>
<th bgcolor=silver><font size=1 ><center>11</font></th>
<th bgcolor=silver><font size=1 ><center>12</font></th>
<th bgcolor=silver><font size=1 ><center>13</font></th>
<th bgcolor=silver><font size=1 ><center>14</font></th>
<th bgcolor=silver><font size=1 ><center>Nota</font></th>
<th bgcolor=silver><font size=1 ><center>Juicio Valorativo</font></th>
<th bgcolor=silver><font size=1 ><center></font></th></TR>"
;
//*************************************************************************
/*Y ahora todos los registros */
while($row2=mysql_fetch_array($result2))

 

while(
$row=mysql_fetch_array($result))

//*****************************************************
{
echo 
"<tr>
<td> $row[e_nombre] </td>
<td>"
; if($row2['ob1'] != ""){ echo "<input type='checkbox' name=c1 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob2'] != ""){ echo "<input type='checkbox' name=c2 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob3'] != ""){ echo "<input type='checkbox' name=c3 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob4'] != ""){ echo "<input type='checkbox' name=c4 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob5'] != ""){ echo "<input type='checkbox' name=c5 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob6'] != ""){ echo "<input type='checkbox' name=c6 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob7'] != ""){ echo "<input type='checkbox' name=c7 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob8'] != ""){ echo "<input type='checkbox' name=c8 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob9'] != ""){ echo "<input type='checkbox' name=c9 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob10'] != ""){ echo "<input type='checkbox' name=c10 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob11'] != ""){ echo "<input type='checkbox' name=c11 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob12'] != ""){ echo "<input type='checkbox' name=c12 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob13'] != ""){ echo "<input type='checkbox' name=c13 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob14'] != ""){ echo "<input type='checkbox' name=c14 value=1 >"; } else{ echo ""; } echo "</td>
<td> <input name='nota3' type='text' id='nota3' size='10' maxlength='10' /> </td>
<td> <input name='juicio' type='text' id='juicio' size='40' maxlength='150' /> </td>
<td> <input type='submit' name='button' id='button' value='Enviar' /> </td>
</tr>"
;
}
echo 
"</table>";  

?>
Con esto obtengo los checkbox.
Este otro codigo inserta los resultados de los checkbox:

Código PHP:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
# chechkbox

if( $c1 != "") { 
if( 
$c1 == "1" ) {
      
$c1 "F";
} else {
      
$c1 "D";
}
}

if( 
$c2 != "") { 
if( 
$c2 == "1" ) {
      
$c2 "F";
} else {
      
$c2 "D";
}
}
if( 
$c3 != "") { 
if( 
$c3 == "1" ) {
      
$c3 "F";
} else {
      
$c3 "D";
}
}
if( 
$c4 != "") { 
if( 
$c4 == "1" ) {
      
$c4 "F";
} else {
      
$c4 "D";
}
}
if( 
$c5 != "") { 
if( 
$c5 == "1" ) {
      
$c5 "F";
} else {
      
$c5 "D";
}
}
if( 
$c6 != "") { 
if( 
$c6 == "1" ) {
      
$c6 "F";
} else {
      
$c6 "D";
}
}
if( 
$c7 != "") { 
if( 
$c7 == "1" ) {
      
$c7 "F";
} else {
      
$c7 "D";
}
}
if( 
$c8 != "") { 
if( 
$c8 == "1" ) {
      
$c8 "F";
} else {
      
$c8 "D";
}
}
if( 
$c9 != "") { 
if( 
$c9 == "1" ) {
      
$c9 "F";
} else {
      
$c9 "D";
}
}
if( 
$c10 != "") { 
if( 
$c10 == "1" ) {
      
$c10 "F";
} else {
      
$c10 "D";
}
}
if( 
$c11 != "") { 
if( 
$c11 == "1" ) {
      
$c11 "F";
} else {
      
$c11 "D";
}
}
if( 
$c12 != "") { 
if( 
$c12 == "1" ) {
      
$c12 "F";
} else {
      
$c12 "D";
}
}
if( 
$c13 != "") { 
if( 
$c13 == "1" ) {
      
$c13 "F";
} else {
      
$c13 "D";
}
}
if( 
$c14 != "") { 
if( 
$c14 == "1" ) {
      
$c14 "F";
} else {
      
$c14 "D";
}
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
# valoracion
if( $nota3 != "")
if(
$nota3<3.0){
$val="bajo";
}
if(
$nota3>=3.0 && $nota3<=3.6){
$val="basico";
}
if(
$nota3>=3.7 && $nota3<=4.3){
$val="alto";
}
if(
$nota3>=4.4){
$val="superior";
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
Esta version la modifiqué y consigo a obtener que me inserte solo los checkbox que aparecen en la tabla pero me inserta si un checkbox no es vacio...letra"F"
Lo que quiero es que me inserte también la letra "D" no seleccionando nada

Espero que pueda entender.

Gracias por la preciosa ayuda.
  #6 (permalink)  
Antiguo 03/05/2011, 09:33
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: insertar en datatabase solo filas no vacias...

Muestranos tu consulta dónde intentas insertar los datos.
  #7 (permalink)  
Antiguo 03/05/2011, 10:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: insertar en datatabase solo filas no vacias...

angelfcm gracias por la respuesta. La consulta es:

Código PHP:
<?
include ("conexion.php");

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
# post

$c1 $_POST['c1'];
$c2 $_POST['c2'];
$c3 $_POST['c3'];
$c4 $_POST['c4'];
$c5 $_POST['c5'];
$c6 $_POST['c6'];
$c7 $_POST['c7'];
$c8 $_POST['c8'];
$c9 $_POST['c9'];
$c10 $_POST['c10'];
$c11 $_POST['c11'];
$c12 $_POST['c12'];
$c13 $_POST['c13'];
$c14 $_POST['c14'];
$nota3 $_POST['nota3'];
$val $_POST['val'];
$juicio $_POST['juicio'];

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
# chechkbox

if( $c1 != "") { 
if( 
$c1 == "1" ) {
      
$c1 "F";
} else {
      
$c1 "D";
}
}

if( 
$c2 != "") { 
if( 
$c2 == "1" ) {
      
$c2 "F";
} else {
      
$c2 "D";
}
}
if( 
$c3 != "") { 
if( 
$c3 == "1" ) {
      
$c3 "F";
} else {
      
$c3 "D";
}
}
if( 
$c4 != "") { 
if( 
$c4 == "1" ) {
      
$c4 "F";
} else {
      
$c4 "D";
}
}
if( 
$c5 != "") { 
if( 
$c5 == "1" ) {
      
$c5 "F";
} else {
      
$c5 "D";
}
}
if( 
$c6 != "") { 
if( 
$c6 == "1" ) {
      
$c6 "F";
} else {
      
$c6 "D";
}
}
if( 
$c7 != "") { 
if( 
$c7 == "1" ) {
      
$c7 "F";
} else {
      
$c7 "D";
}
}
if( 
$c8 != "") { 
if( 
$c8 == "1" ) {
      
$c8 "F";
} else {
      
$c8 "D";
}
}
if( 
$c9 != "") { 
if( 
$c9 == "1" ) {
      
$c9 "F";
} else {
      
$c9 "D";
}
}
if( 
$c10 != "") { 
if( 
$c10 == "1" ) {
      
$c10 "F";
} else {
      
$c10 "D";
}
}
if( 
$c11 != "") { 
if( 
$c11 == "1" ) {
      
$c11 "F";
} else {
      
$c11 "D";
}
}
if( 
$c12 != "") { 
if( 
$c12 == "1" ) {
      
$c12 "F";
} else {
      
$c12 "D";
}
}
if( 
$c13 != "") { 
if( 
$c13 == "1" ) {
      
$c13 "F";
} else {
      
$c13 "D";
}
}
if( 
$c14 != "") { 
if( 
$c14 == "1" ) {
      
$c14 "F";
} else {
      
$c14 "D";
}
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
# valoracion
if( $nota3 != "")
if(
$nota3<3.0){
$val="bajo";
}
if(
$nota3>=3.0 && $nota3<=3.6){
$val="basico";
}
if(
$nota3>=3.7 && $nota3<=4.3){
$val="alto";
}
if(
$nota3>=4.4){
$val="superior";
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
# update

$sql "UPDATE SEXTO_A_MAT SET c1='$c1', c2='$c2', c3='$c3', c4='$c4', c5='$c5', c6='$c6', c7='$c7', c8='$c8', c9='$c9', c10='$c10', c11='$c11', c12='$c12',  c13='$c13', c14='$c14', nota3='$nota3', val='$val' , juicio='$juicio'  WHERE id=1";
$result mysql_query($sql);  

mysql_close();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////

echo "<center> datos insertados con exito </center>";

?>
donde c1,c2,c3 etc... son los checkbox

si necesita otras informaciones con gusto te las daré...

Gracias de toda forma
  #8 (permalink)  
Antiguo 03/05/2011, 12:39
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: insertar en datatabase solo filas no vacias...

Hola, necesito comprender sobre esto:
Si un checkbox es seleccionado se coloca la letra "F", si no es seleccionado la letra "D" y si no existe la letra "D"? ó ""(nada)?.
Explicame, te espero.
  #9 (permalink)  
Antiguo 03/05/2011, 13:59
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: insertar en datatabase solo filas no vacias...

Porque no lo haces asi:

Código PHP:
Ver original
  1. if( $c1 != "" && $c1 == "1") {
  2.       $c1 = "F";
  3. }else {
  4.       $c1 = "D";
  5. }

Asi si $c1 si no esta vacio y es igual a 1 $c1 = "F", sino es igual a "D".
  #10 (permalink)  
Antiguo 03/05/2011, 15:10
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años
Puntos: 34
Respuesta: insertar en datatabase solo filas no vacias...

Dos recomendaciones, primero:

Código PHP:
Ver original
  1. <td>"; if($row2['ob1'] != ""){ echo "<input type='checkbox' name=c1 value=1 >"; } else{ echo ""; } echo "</td>
  2. <td>"; if($row2['ob2'] != ""){ echo "<input type='checkbox' name=c2 value=1 >"; } else{ echo ""; } echo "</td>
  3. <td>"; if($row2['ob3'] != ""){ echo "<input type='checkbox' name=c3 value=1 >"; } else{ echo ""; } echo "</td>
  4. <td>"; if($row2['ob4'] != ""){ echo "<input type='checkbox' name=c4 value=1 >"; } else{ echo ""; } echo "</td>
  5. <td>"; if($row2['ob5'] != ""){ echo "<input type='checkbox' name=c5 value=1 >"; } else{ echo ""; } echo "</td>
  6. <td>"; if($row2['ob6'] != ""){ echo "<input type='checkbox' name=c6 value=1 >"; } else{ echo ""; } echo "</td>
  7. <td>"; if($row2['ob7'] != ""){ echo "<input type='checkbox' name=c7 value=1 >"; } else{ echo ""; } echo "</td>
  8. <td>"; if($row2['ob8'] != ""){ echo "<input type='checkbox' name=c8 value=1 >"; } else{ echo ""; } echo "</td>
  9. <td>"; if($row2['ob9'] != ""){ echo "<input type='checkbox' name=c9 value=1 >"; } else{ echo ""; } echo "</td>
  10. <td>"; if($row2['ob10'] != ""){ echo "<input type='checkbox' name=c10 value=1 >"; } else{ echo ""; } echo "</td>
  11. <td>"; if($row2['ob11'] != ""){ echo "<input type='checkbox' name=c11 value=1 >"; } else{ echo ""; } echo "</td>
  12. <td>"; if($row2['ob12'] != ""){ echo "<input type='checkbox' name=c12 value=1 >"; } else{ echo ""; } echo "</td>
  13. <td>"; if($row2['ob13'] != ""){ echo "<input type='checkbox' name=c13 value=1 >"; } else{ echo ""; } echo "</td>
  14. <td>"; if($row2['ob14'] != ""){ echo "<input type='checkbox' name=c14 value=1 >"; } else{ echo ""; } echo "</td>

En vez de eso, por tema de recursos (me parece, no estoy seguro) quizás te convenga convertirlo a :

Código PHP:
Ver original
  1. for($i=1;$i<14;$i++){
  2.     $numOb = 'ob' . $i;
  3.     echo "<td">;
  4.     if($row[$numOb] != ""){
  5.         echo "<input type='checkbox' name=c".$i." value=1 >";
  6.     }else{
  7.         echo "";
  8.     }
  9.     echo "</td>"
  10. }

Mientras que a esto:

Te convendría de esta forma:
Código PHP:
Ver original
  1. <?
  2. include ("conexion.php");
  3.  
  4. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  5. # post
  6.  
  7. $c1 = $_POST['c1'];
  8. $c2 = $_POST['c2'];
  9. $c3 = $_POST['c3'];
  10. $c4 = $_POST['c4'];
  11. $c5 = $_POST['c5'];
  12. $c6 = $_POST['c6'];
  13. $c7 = $_POST['c7'];
  14. $c8 = $_POST['c8'];
  15. $c9 = $_POST['c9'];
  16. $c10 = $_POST['c10'];
  17. $c11 = $_POST['c11'];
  18. $c12 = $_POST['c12'];
  19. $c13 = $_POST['c13'];
  20. $c14 = $_POST['c14'];
  21. $nota3 = $_POST['nota3'];
  22. $val = $_POST['val'];
  23. $juicio = $_POST['juicio'];
  24.  
  25. //////////////////////////////////////////////////////////////////////////////////////////////////////////////
  26. # chechkbox
  27.  
  28. if( $c1 != "") {  
  29. if( $c1 == "1" ) {
  30.       $c1 = "F";
  31. } else {
  32.       $c1 = "D";
  33. }
  34. }
  35.  
  36. if( $c2 != "") {  
  37. if( $c2 == "1" ) {
  38.       $c2 = "F";
  39. } else {
  40.       $c2 = "D";
  41. }
  42. }
  43. if( $c3 != "") {  
  44. if( $c3 == "1" ) {
  45.       $c3 = "F";
  46. } else {
  47.       $c3 = "D";
  48. }
  49. }
  50. if( $c4 != "") {  
  51. if( $c4 == "1" ) {
  52.       $c4 = "F";
  53. } else {
  54.       $c4 = "D";
  55. }
  56. }
  57. if( $c5 != "") {  
  58. if( $c5 == "1" ) {
  59.       $c5 = "F";
  60. } else {
  61.       $c5 = "D";
  62. }
  63. }
  64. if( $c6 != "") {  
  65. if( $c6 == "1" ) {
  66.       $c6 = "F";
  67. } else {
  68.       $c6 = "D";
  69. }
  70. }
  71. if( $c7 != "") {  
  72. if( $c7 == "1" ) {
  73.       $c7 = "F";
  74. } else {
  75.       $c7 = "D";
  76. }
  77. }
  78. if( $c8 != "") {  
  79. if( $c8 == "1" ) {
  80.       $c8 = "F";
  81. } else {
  82.       $c8 = "D";
  83. }
  84. }
  85. if( $c9 != "") {  
  86. if( $c9 == "1" ) {
  87.       $c9 = "F";
  88. } else {
  89.       $c9 = "D";
  90. }
  91. }
  92. if( $c10 != "") {  
  93. if( $c10 == "1" ) {
  94.       $c10 = "F";
  95. } else {
  96.       $c10 = "D";
  97. }
  98. }
  99. if( $c11 != "") {  
  100. if( $c11 == "1" ) {
  101.       $c11 = "F";
  102. } else {
  103.       $c11 = "D";
  104. }
  105. }
  106. if( $c12 != "") {  
  107. if( $c12 == "1" ) {
  108.       $c12 = "F";
  109. } else {
  110.       $c12 = "D";
  111. }
  112. }
  113. if( $c13 != "") {  
  114. if( $c13 == "1" ) {
  115.       $c13 = "F";
  116. } else {
  117.       $c13 = "D";
  118. }
  119. }
  120. if( $c14 != "") {  
  121. if( $c14 == "1" ) {
  122.       $c14 = "F";
  123. } else {
  124.       $c14 = "D";
  125. }
  126. }
  127.  
  128. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
  129. # valoracion
  130. if( $nota3 != "")
  131. if($nota3<3.0){
  132. $val="bajo";
  133. }
  134. if($nota3>=3.0 && $nota3<=3.6){
  135. $val="basico";
  136. }
  137. if($nota3>=3.7 && $nota3<=4.3){
  138. $val="alto";
  139. }
  140. if($nota3>=4.4){
  141. $val="superior";
  142. }
  143.  
  144. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  145. # update
  146.  
  147. $sql = "UPDATE SEXTO_A_MAT SET c1='$c1', c2='$c2', c3='$c3', c4='$c4', c5='$c5', c6='$c6', c7='$c7', c8='$c8', c9='$c9', c10='$c10', c11='$c11', c12='$c12',  c13='$c13', c14='$c14', nota3='$nota3', val='$val' , juicio='$juicio'  WHERE id=1";
  148. $result = mysql_query($sql);  
  149.  
  150. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  151.  
  152. echo "<center> datos insertados con exito </center>";
  153.  
  154. ?>

Lo reemplazaría por esto:
Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3. /* Incluir archivo conexion */
  4.  
  5. $c1 = $_POST['c1'];
  6. $c2 = $_POST['c2'];
  7. $c3 = $_POST['c3'];
  8. $c4 = $_POST['c4'];
  9. $c5 = $_POST['c5'];
  10. $c6 = $_POST['c6'];
  11. $c7 = $_POST['c7'];
  12. $c8 = $_POST['c8'];
  13. $c9 = $_POST['c9'];
  14. $c10 = $_POST['c10'];
  15. $c11 = $_POST['c11'];
  16. $c12 = $_POST['c12'];
  17. $c13 = $_POST['c13'];
  18. $c14 = $_POST['c14'];
  19. $nota3 = $_POST['nota3'];
  20. $val = $_POST['val'];
  21. $juicio = $_POST['juicio'];
  22.  
  23. /* Obteniendo valores de CheckBox */
  24.  
  25. $array = array($c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$c10,$c11,$c12,$c13,$c14);
  26. $count_array = count($array);
  27.  
  28. for($i=0;$i<$count_array;$i++){
  29.     if($array[$i] != "" && $array[$i] == "1"){
  30.         $c_$i = "F";
  31.     }else{
  32.         $c_$i = "D";
  33.     }
  34. }
  35. /* Valoraciones */
  36. if($nota3 != "" && $nota3<3.0){
  37.     $val="bajo";
  38. }elseif(($nota3 !="") && $nota3>=3.0 && $nota3<=3.6){
  39.     $val = "basico";
  40. }elseif(($nota3 !="") && $nota3>=3.7 && $nota3<=4.3){
  41.     $val = "alto";
  42. }elseif(($nota3 != "") && $nota3>=4.4){
  43.     $val = "superior";
  44. }
  45.  
  46. /* Consulta MySQL */
  47. $sql = "UPDATE SEXTO_A_MAT SET c1='$c_1',c2='$c_2',c3='$c_3',c4='$c_4',c5='$c_5',c6='$c_6',c7='$c_7',c8='$c_8',c9='$c_9',c10='$c_10',c11='$c_11',c12='$c_12',c13='$c_13',c14='$c_14',nota3='$nota3',val='$val',juicio='$juicio' WHERE id=1";
  48. $result = mysql_query($sql) or die("Error al Actualizar los registros. <strong>Detalles</b>:<br>" . mysql_error());
  49. /* Aviso de actualización correcta */
  50. echo "<center> Datos insertados correctamente </center>";
  51. ?>

Despues me contás como te fue amigo. Un saludo
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #11 (permalink)  
Antiguo 03/05/2011, 15:16
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: insertar en datatabase solo filas no vacias...

s00rk es la misma cosa...el tuyo es mas correcto como código, pero el problema es lo mismo..en insertar los checkbox en la base de datos me inserta todos los checkbox que están en la base, no solo los que aparecen en la tabla html dinámica.

angelfcm, si selecciono el checkbox inserto la letra "F", si no selecciono nada inserto la letra "D". esto siempre y es lo que quiero.
el problema es que, como tengo 14 filas listas para recibir 14 checkbox y si inserto todos se llenaran (o de "F" o de "D").
Lo que quiero yo es que se llenen solamente los checkbox que aparecen en la tabla segundo los textos insertados.
ejemplo tengo 5 checkbox en la tabla y inserto los 5 checkbox, algunos seleccionados y otros no, quiero que se inserten solo los que hay en la tabla y los otros se quedan en blanco...
Espero de verdad que alguien entienda, es difícil de explicar, para mi es trabajar en el codigo para inserta...una variante del if, pienso.

Quedo agradecido por las respuestas

Saludos
  #12 (permalink)  
Antiguo 03/05/2011, 15:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: insertar en datatabase solo filas no vacias...

fekaa11 gracias por estos codigos totalmente nuevos para mi
He provado el primero y tengo una duda; al parecer tengo que duplicar el codigo por los numeros de los "ob". ejemplo ob1,ob2,ob3... confirmar si es correcto.

el segundo codigo me sale un error en el renglon 23. Lo de abajo. talvez es copiando el codigo, ahora con calma lo voy reescribir...

Gracias por toda la ayuda, tenemos que lograr el objetivo.



/* Obteniendo valores de CheckBox */
(ERROR)$array = array($c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$c10,$c1 1,$c12,$c13,$c14);*
$count_array = count($array);
*
for($i=0;$i<$count_array;$i++){
* * if($array[$i] != "" && $array[$i] == "1"){
* * * * $c_$i = "F";
* * }else{
* * * * $c_$i = "D";
* * }
}
/* Valoraciones */
if($nota3 != "" && $nota3<3.0){
* * $val="bajo";
}elseif(($nota3 !="") && $nota3>=3.0 && $nota3<=3.6){
* * $val = "basico";
}elseif(($nota3 !="") && $nota3>=3.7 && $nota3<=4.3){
* * $val = "alto";
}elseif(($nota3 != "") && $nota3>=4.4){
* * $val = "superior";
}
*
/* Consulta MySQL */
$sql = "UPDATE SEXTO_A_MAT SET
  #13 (permalink)  
Antiguo 03/05/2011, 15:49
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años
Puntos: 34
Respuesta: insertar en datatabase solo filas no vacias...

Te dejé un MP. Fijate al final del uso de $array, en la línea donde te da error, se copió un * (al menos yo no lo puse, no se si lo hiciste tú sin querer). Lo mejor en estos casos es que me digas la cadena de error que te tira.

Edit: Claro, eso es lo que haz puesto en el primer código del POST 5 de este tema (fíjate). Obtienes OB seguido de un número que va creciendo de 1 en 1. Para ello hacemos un for con variable post-incremento e incrementamos el número, igual si quieres dejalo como estaba, me parece que de mi forma gasta menos recursos, pero aún no lo se.
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #14 (permalink)  
Antiguo 03/05/2011, 16:35
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: insertar en datatabase solo filas no vacias...

Como yo entendí es que si esta activado el checkbox entonces es una "F" de lo contrario es "D" ya sea por que no esta ese checkbox o por que no fué seleccionado.
Mira te dejo como yo creo que debería de funcionar, incluso te resumí algunas cosas para que no sea tanto codigo porque es algo tedioso.

Código PHP:
<?php
 
include ("conexion.php"); 
///////////////////////////////////////////////////////////////////////////////////////////////////////////// 
# post & checkbox

 
$nota3 $_POST['nota3']; 
 
$val $_POST['val']; 
 
$juicio $_POST['juicio']; 
 
$numChecks=14// Cantidad de checks que tienes
 /*La siguiente variable almacenará los datos de los checks que se insertaran en mysql, ej: c1='F', c2='D'...*/
 
$consultaChecks="";
 for(
$x=1;$x<=$numChecks;$x++){
 
/*La siguiente sentencia crea una variable llamada $actual que almacena "F" o 
"D" dependiendo del valor del check */
  
eval("\$actual=\$_POST[c".$x."]?'F':'D';");
  if(
$consultaChecks)
   
$consultaChecks.=", c".$x."='".$actual."'";
  else
   
$consultaChecks="c1='".$actual."'";
 }
//Ahora $consultaChecks tiene el contenido de la consulta para los checks
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
# valoracion 
// Aquí solo simplifique por si te gusta así o igual ponlo como tu lo tenias.
 
$val=($nota3!="" && $nota3<3.0)?
      
"bajo":
      (
       (
$nota3>=3.0 && $nota3<=3.6)?
       
"básico":
       (
        (
$nota3>=3.7 && $nota3<=4.3)?
        
"alto":
        
"superior"
       
)
      ); 

///////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
# update 

$sql "UPDATE SEXTO_A_MAT SET ".$consultaChecks.", 
        nota3='$nota3', val='$val' , juicio='$juicio'  
        WHERE id=1"

$result mysql_query($sql);   
 
mysql_close(); 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
 
echo "<center> datos insertados con exito </center>"
?>
Saludos

Última edición por angelfcm; 03/05/2011 a las 16:44
  #15 (permalink)  
Antiguo 04/05/2011, 09:52
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: insertar en datatabase solo filas no vacias...

Hola amigos, traté de hacer como me dijiste pero no obtuve resultados.

fekaa11, el código que inserté es correcto, me tira este error:

Parse error: syntax error, unexpected T_VARIABLE in /home/liceopan/public_html/NUEVA_PLATAFORMA/3177948728/pruebaelabora_datos.php on line 5.

angelfcm inserté los checkbox con tu codigo, pero sigue insertando todos los checkbox y no solamente los de la tabla.
si no consigo a explicarme tomaré un tiempito para subir foto de las pantallas y trataré de explicarme con imagenes...
si alguien tiene otra idea....

Hasta muy pronto y gracias de toda forma
  #16 (permalink)  
Antiguo 04/05/2011, 17:25
(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
  #17 (permalink)  
Antiguo 04/05/2011, 18:09
Avatar de fekaa11  
Fecha de Ingreso: abril-2011
Ubicación: Córdoba / Argentina
Mensajes: 115
Antigüedad: 13 años
Puntos: 34
Respuesta: insertar en datatabase solo filas no vacias...

Fijate la cadena que me haz dicho que te daba error:
Código PHP:
Ver original
  1. (ERROR)$array = array($c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$c10,$c1 1,$c12,$c13,$c14);*

Despues del elemento numero 10, hay $c1 1 (un espacio entre cada uno, bórralo).

Al final de la cadena hay un * (también borralo).

Finalmente prueba a poner comillas simples entre cada variable, de esta forma:
Código PHP:
Ver original
  1. $array = array('$c1','$c2','$c3','$c4','$c5','$c6','$c7','$c8','$c9','$c10','$c11','$c12','$c13','$c14');

Tu error del que me haz comentado en el POST 15 es éste mismo o uno diferente ? En caso de ser uno diferente postealo y dime cual es

Un saludo
__________________
Pedir perdón es de hombres inteligentes. Perdonar es de sabios.
  #18 (permalink)  
Antiguo 06/05/2011, 07:37
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: insertar en datatabase solo filas no vacias...

Buenos Días, estoy un poco aburrido, no consigo a insertar los códigos que me enviaste, angelfcm y fekaa11.

angelfcm, hice lo que me dijiste así:

javascript en el formulario donde inserto los checkbox
***********************************************
<script type="text/javascript">
var MenuBar1 = new Spry.Widget.MenuBar("Menu", {imgDown:"spry/SpryMenuBarDownHover.gif", imgRight:"spry/SpryMenuBarRightHover.gif"});
</script>
<script>
function buscarChecks(Form){
* var numchecks=0;
* for(x=0;x<Form.childNodes.length;x++){
* * var nodo=Form.childNodes[x];
* * if(nodo.type=='checkbox' && /^c([0-9]+)$/i.test(nodo.name))
* * * numchecks++ }
* Form.numchecks.value=numchecks;
}
</script>
</body>
</html>
**********************************************

form
**********************************************

<div class="contenido1">
<form action="pruebaelaboradatos1.php" method="post" onsubmit="buscarChecks(this)">
<input type="hidden" name="numchecks" value="0" />

**********************************************

envio datos (pruebaelaboradatos1.php)
**********************************************

<?php include("../conexion.php");

/* Incluir archivo conexion */
$c1 = $_POST['c1'];
$c2 = $_POST['c2'];
$c3 = $_POST['c3'];
$c4 = $_POST['c4'];
$c5 = $_POST['c5'];
$c6 = $_POST['c6'];
$c7 = $_POST['c7'];
$c8 = $_POST['c8'];
$c9 = $_POST['c9'];
$c10 = $_POST['c10'];
$c11 = $_POST['c11'];
$c12 = $_POST['c12'];
$c13 = $_POST['c13'];
$c14 = $_POST['c14'];
$nota3 = $_POST['nota3'];
$val = $_POST['val'];
$juicio = $_POST['juicio'];

$array = array($c1,$c2,$c3,$c4,$c5,$c6,$c7,$c8,$c9,$c10,$c1 1,$c12,$c13,$c14);
$count_array = count($array);*

for($i=0;$i<$count_array;$i++){
if($array[$i] != "" && $array[$i] == "1"){
$c_$i = "F";
}else{
$c_$i = "D";
}
}
/* Valoraciones */
if($nota3 != "" && $nota3<3.0){
$val="bajo";
}elseif(($nota3 !="") && $nota3>=3.0 && $nota3<=3.6){
$val = "basico";
}elseif(($nota3 !="") && $nota3>=3.7 && $nota3<=4.3){
$val = "alto";
}elseif(($nota3 != "") && $nota3>=4.4){
$val = "superior";
}

/* Consulta MySQL */
$sql = "UPDATE SEXTO_A_MAT SET c1='$c_1',c2='$c_2',c3='$c_3',c4='$c_4',c5='$c_5', c6='$c_6',c7='$c_7',c8='$c_8',c9='$c_9',c10='$c_10 ',c11='$c_11',c12='$c_12',c13='$c_13',c14='$c_14', nota3='$nota3',val='$val',juicio='$juicio' WHERE id=1";
$result = mysql_query($sql) or die("Error al Actualizar los registros. <strong>Detalles</b>:<br>" . mysql_error());
mysql_close();
/* Aviso de actualización correcta */
echo "<center> Datos insertados correctamente </center>";
?>
**********************************************

Ya en dreamweaver me da un error en el "for" (uso dreamweaver solo porqué me da los errores, cuando no tengo problemas uso notepad...
el error que me da es:

**********************************************

Parse error: syntax error, unexpected T_FOR in /home/liceopan/public_html/NUEVA_PLATAFORMA/3177948728/pruebaelaboradatos1.php on line 25

**********************************************
Justo donde me dice dreamweaver.

ahora está pasando una cosa rara: cuando copio lo script desde la pagina del foro y la pego en mi archivo, me da errores raros; si escribo por ejemplo un renglón exactamente igual desaparece y el error baja en otro renglón...Esto no lo entiendo para nada...

fekaa11 lo mismo con tu código; averigüé el script y, aun corregido, sigue con el error...

no se mas que hacer... Help!!!

Gracias para todos y sobre todo por la paciencia....
  #19 (permalink)  
Antiguo 06/05/2011, 13:55
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: insertar en datatabase solo filas no vacias...

Hola, hey!!!
El código que escribiste dónde procesas los datos (pruebaelaboradatos1.php) no es nada parecido al que te pase, tienes que copiarlo completo y reemplazarlo por el tuyo.

El primero si lo modificaste bien el segundo(pruebaelaboradatos1.php) no.

Ya lo probé y funciona perfectamente.

Lee mi post bien y sigue bien los pasos.

Última edición por angelfcm; 06/05/2011 a las 14:03
  #20 (permalink)  
Antiguo 06/05/2011, 18:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: insertar en datatabase solo filas no vacias...

Hola angelfcm, que pena contigo, de verdad me equivoqué con el archivo...
De toda forma imagina que copié el archivo correcto y seguía con los errores, tuve que hacer una cosa rara; borrar los espacios vacíos y volver a poner en su lugar el código, así desaparecían los errores. aun así sin darme ningún error el script no me inserta ningún datos en la base de datos (disculpa la redundancia). aqui te pongo los script:

************************************************** **
Código PHP:
<?php include ("../conexion.php");
 
<
form action="pruebaelaboradatos1.php" method="post" onsubmit="buscarChecks(this)">
<
input type="hidden" name="numchecks" value="0" />
<?
php header("Content-type:text/html;charset=ISO-8859-1");
//***************************************************************************
/* Realizamos la consulta SQL */
$sql"SELECT  e_nombre  FROM estudiantes WHERE (id=19)  ";

$resultmysql_query($sql) or die(mysql_error());
if(
mysql_num_rows($result)==0) die("No hay registros para mostrar");    
//**********************************************************************
$sql2"SELECT  ob1,  ob2,  ob3,  ob4,  ob5,  ob6,  ob7,  ob8,  ob9,  ob10,  ob11,  ob12,  ob13,  ob14  FROM objetivos WHERE id=6 ";
$result2mysql_query($sql2) or die(mysql_error());
if(
mysql_num_rows($result2)==0) die("No hay registros para mostrar");    
//*************************************************************************


echo "<table border=1 cellpadding=1 cellspacing=0>";
echo 
"<tr><th colspan=18><center>  GRUPO SEXTO A 'MATEMATICAS'</th><tr>";

# construyendo los encabezados de la tabla
echo " <th bgcolor=silver><font size=1 ><center>___________ESTUDIANTE___________</font></th>
<th bgcolor=silver><font size=1 ><center>01</font></th>
<th bgcolor=silver><font size=1 ><center>02</font></th>
<th bgcolor=silver><font size=1 ><center>03</font></th>
<th bgcolor=silver><font size=1 ><center>04</font></th>
<th bgcolor=silver><font size=1 ><center>05</font></th>
<th bgcolor=silver><font size=1 ><center>06</font></th>
<th bgcolor=silver><font size=1 ><center>07</font></th>
<th bgcolor=silver><font size=1 ><center>08</font></th>
<th bgcolor=silver><font size=1 ><center>09</font></th>
<th bgcolor=silver><font size=1 ><center>10</font></th>
<th bgcolor=silver><font size=1 ><center>11</font></th>
<th bgcolor=silver><font size=1 ><center>12</font></th>
<th bgcolor=silver><font size=1 ><center>13</font></th>
<th bgcolor=silver><font size=1 ><center>14</font></th>
<th bgcolor=silver><font size=1 ><center>Nota</font></th>
<th bgcolor=silver><font size=1 ><center>Juicio Valorativo</font></th>
<th bgcolor=silver><font size=1 ><center></font></th></TR>"
;
//*************************************************************************
/*Y ahora todos los registros */
while($row2=mysql_fetch_array($result2))

 

while(
$row=mysql_fetch_array($result))

//*****************************************************
{
echo 
"<tr>
<td> $row[e_nombre] </td>
<td>"
; if($row2['ob1'] != ""){ echo "<input type='checkbox' name=c1 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob2'] != ""){ echo "<input type='checkbox' name=c2 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob3'] != ""){ echo "<input type='checkbox' name=c3 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob4'] != ""){ echo "<input type='checkbox' name=c4 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob5'] != ""){ echo "<input type='checkbox' name=c5 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob6'] != ""){ echo "<input type='checkbox' name=c6 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob7'] != ""){ echo "<input type='checkbox' name=c7 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob8'] != ""){ echo "<input type='checkbox' name=c8 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob9'] != ""){ echo "<input type='checkbox' name=c9 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob10'] != ""){ echo "<input type='checkbox' name=c10 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob11'] != ""){ echo "<input type='checkbox' name=c11 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob12'] != ""){ echo "<input type='checkbox' name=c12 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob13'] != ""){ echo "<input type='checkbox' name=c13 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob14'] != ""){ echo "<input type='checkbox' name=c14 value=1 >"; } else{ echo ""; } echo "</td>
<td> <input name='nota3' type='text' id='nota3' size='10' maxlength='10' /> </td>
<td> <input name='juicio' type='text' id='juicio' size='40' maxlength='150' /> </td>
<td> <input type='submit' name='button' id='button' value='Enviar' /> </td>
</tr>"
;
}
echo 
"</table>";  

?>
<script>
function buscarChecks(Form){
 var numchecks=0;
 for(x=0;x<Form.childNodes.length;x++){
 var nodo=Form.childNodes[x];
 if(nodo.type=='checkbox' && /^c([0-9]+)$/i.test(nodo.name))
 numchecks++ }
 Form.numchecks.value=numchecks;
}
</script>
*************************************************

Otro script que inserta (pruebaelaboradatos1.php)

*************************************************
Código PHP:
<?php include ("../conexion.php");
 
///////////////////////////////////////////////////////////////////////////////////////////////////////////// 
# post & checkbox
$nota3 $_POST['nota3'];
$val $_POST['val']; 
$juicio $_POST['juicio']; 
$numChecks $_POST['numChecks'];
$maxChecks=14;
$consultaChecks="";
for(
$x=1;$x<=$maxChecks;$x++){
    if(
$x<=$numChecks)
    eval(
"\$actual=\$_POST[c".$x."]?'F':'D';");
    else 
$actual="";
    if(
$consultaChecks)
    
$consultaChecks.=", c".$x."='".$actual."'";
    else 
$consultaChecks="c1='".$actual."'";
    }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
# valoracion 
$val=($nota3!="" && $nota3<3.0)?
     
"bajo":
    (
    (
$nota3>=3.0 && $nota3<=3.6)?
    
"básico":
    (
    (
$nota3>=3.7 && $nota3<=4.3)?
     
"alto":
     
"superior"
     
)
     ); 

 
$sql "UPDATE SEXTO_A_MAT SET ".$consultaChecks.", 
 nota3='$nota3', val='$val' , juicio='$juicio' *
 WHERE id=1"

$result mysql_query($sql);
mysql_close(); 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

echo "<center> datos insertados con exito </center>"
?>
<style type="text/css">
.font {
    font-family: Verdana, Geneva, sans-serif;
    font-size: 16px;
    color: #F00;
}
</style>

 <center><a href="javascript:history.back(1)" class="font">Volver Atrás</a></center>
La unica cosa que cambié fué esto:

$numChecks=$_POST[numchecks];

Con

$numChecks = $_POST['numChecks'];

Porqué de lo poco que se me parece que las escritas tienen que ser las mismas y necesitan de las ''.

Disculpa otra vez si puse el código errado...Pero este no inserta.
Gracias de toda forma por el esfuerzo tratando de entenderme
  #21 (permalink)  
Antiguo 06/05/2011, 22:01
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: insertar en datatabase solo filas no vacias...

Hola!,
Me tome unos minutos para revisar tus archivos y me dí cuenta que desordenaste algunas partes del código que te pase, además tu código tenía muchos errores.
Te digo algunas reglas:
  • Siempre debes cerrar las etiquetas html, si abres debes cerrarla antes de abrir otra(Tenías algunas mal).
  • El header() de php siempre debe ir antes de cualquier tipo de salidad( tu tenías html antes de header()), ni un solo espacio va antes de <?php header().
  • Las etiquetas <style> y <script> por estandar van dentro de la etiqueta <head>
  • Debes incluir o requerir archivos con extensión .inc(tú escribiste include("../conexión.php")
Bueno para finalizar, cambia completamente tus archivos por los que te dejo (NO MUEVAS NADA DE NADA).

Código PHP:
<?php 
include ("../conexion.inc");
header("Content-type:text/html;charset=ISO-8859-1");
?>
<html>
<head>
<script>
var numchecks=0;
function buscarChecks(Form){
 for(x=0;x<document.getElementsByTagName("input").length;x++){
 var nodo=document.getElementsByTagName("input")[x];
 if(nodo.type=='checkbox' && /^c([0-9]+)$/i.test(nodo.name))
 numchecks++ }
 Form.numchecks.value=numchecks;
}
</script>
</head>
<body>
<form action="pruebaelaboradatos1.php" method="post" onsubmit="buscarChecks(this)">
<input type="hidden" name="numchecks" value="0" />
<?php
//***************************************************************************
/* Realizamos la consulta SQL */
$sql"SELECT  e_nombre  FROM estudiantes where id=19";

$resultmysql_query($sql) or die(mysql_error());
if(
mysql_num_rows($result)==0)die("No hay registros para mostrar"); 
//**********************************************************************
$sql2"SELECT  ob1,  ob2,  ob3,  ob4,  ob5,  ob6,  ob7,  ob8,  ob9,  ob10,  ob11,  ob12,  ob13,  ob14  FROM objetivos WHERE id=6 ";
$result2mysql_query($sql2) or die(mysql_error());
if(
mysql_num_rows($result2)==0) die("No hay registros para mostrar");    
//*************************************************************************


echo "<table border=1 cellpadding=1 cellspacing=0>";
echo 
"<tr><th colspan=18><center>  GRUPO SEXTO A 'MATEMATICAS'</th><tr>";

# construyendo los encabezados de la tabla
echo " <th bgcolor=silver><font size=1 ><center>___________ESTUDIANTE___________</center></font></th>
<th bgcolor=silver><font size=1 ><center>01</center></font></th>
<th bgcolor=silver><font size=1 ><center>02</center></font></th>
<th bgcolor=silver><font size=1 ><center>03</center></font></th>
<th bgcolor=silver><font size=1 ><center>04</center></font></th>
<th bgcolor=silver><font size=1 ><center>05</center></font></th>
<th bgcolor=silver><font size=1 ><center>06</center></font></th>
<th bgcolor=silver><font size=1 ><center>07</center></font></th>
<th bgcolor=silver><font size=1 ><center>08</center></font></th>
<th bgcolor=silver><font size=1 ><center>09</center></font></th>
<th bgcolor=silver><font size=1 ><center>10</center></font></th>
<th bgcolor=silver><font size=1 ><center>11</center></font></th>
<th bgcolor=silver><font size=1 ><center>12</center></font></th>
<th bgcolor=silver><font size=1 ><center>13</center></font></th>
<th bgcolor=silver><font size=1 ><center>14</center></font></th>
<th bgcolor=silver><font size=1 ><center>Nota</center></font></th>
<th bgcolor=silver><font size=1 ><center>Juicio Valorativo</center></font></th>
<th bgcolor=silver><font size=1 ><center></center></font></th></TR>"
;
//*************************************************************************
/*Y ahora todos los registros */
while($row2=mysql_fetch_array($result2))

 

while(
$row=mysql_fetch_array($result))
//*****************************************************
{
echo 
"<tr>
<td> $row[e_nombre] </td>
<td>"
; if($row2['ob1'] != ""){ echo "<input type='checkbox' name=c1 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob2'] != ""){ echo "<input type='checkbox' name=c2 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob3'] != ""){ echo "<input type='checkbox' name=c3 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob4'] != ""){ echo "<input type='checkbox' name=c4 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob5'] != ""){ echo "<input type='checkbox' name=c5 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob6'] != ""){ echo "<input type='checkbox' name=c6 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob7'] != ""){ echo "<input type='checkbox' name=c7 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob8'] != ""){ echo "<input type='checkbox' name=c8 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob9'] != ""){ echo "<input type='checkbox' name=c9 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob10'] != ""){ echo "<input type='checkbox' name=c10 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob11'] != ""){ echo "<input type='checkbox' name=c11 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob12'] != ""){ echo "<input type='checkbox' name=c12 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob13'] != ""){ echo "<input type='checkbox' name=c13 value=1 >"; } else{ echo ""; } echo "</td>
<td>"
; if($row2['ob14'] != ""){ echo "<input type='checkbox' name=c14 value=1 >"; } else{ echo ""; } echo "</td>
<td> <input name='nota3' type='text' id='nota3' size='10' maxlength='10' /> </td>
<td> <input name='juicio' type='text' id='juicio' size='40' maxlength='150' /> </td>
<td> <input type='submit' name='button' id='button' value='Enviar' /> </td>
</tr>"
;
}
echo 
"</table></form>";  

?>
</body>
</html>
Código PHP:
<?php
 
include ("../conexion.inc");
?>
<html>
<head>
<style type="text/css">
.font {
    font-family: Verdana, Geneva, sans-serif;
    font-size: 16px;
    color: #F00;
}
</style>
</head>
<body>
<?
///////////////////////////////////////////////////////////////////////////////////////////////////////////// 
# post & checkbox
$nota3 $_POST['nota3'];
$val $_POST['val']; 
$juicio $_POST['juicio']; 
$numChecks $_POST['numchecks'];
$maxChecks=14;
$consultaChecks="";
for(
$x=1;$x<=$maxChecks;$x++){
    if(
$x<=$numChecks)
    eval(
"\$actual=\$_POST[c".$x."]?'F':'D';");
    else 
$actual="";
    if(
$consultaChecks)
    
$consultaChecks.=", c".$x."='".$actual."'";
    else 
$consultaChecks="c1='".$actual."'";
    }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
# valoracion 
$val=($nota3!="" && $nota3<3.0)?
     
"bajo":
    (
    (
$nota3>=3.0 && $nota3<=3.6)?
    
"básico":
    (
    (
$nota3>=3.7 && $nota3<=4.3)?
     
"alto":
     
"superior"
     
)
     ); 

 
$sql "UPDATE SEXTO_A_MAT SET ".$consultaChecks.", 
 nota3='$nota3', val='$val' , juicio='$juicio'
 WHERE id=1"

echo 
$sql;
$result mysql_query($sql) or die(mysql_error());
mysql_close(); 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

echo "<center> datos insertados con exito </center>"
?>

 <center><a href="javascript:history.back(1)" class="font">Volver Atrás</a></center>
</body>
</html>
DEBES DE CAMBIAR LA EXTENSIÓN DE TU ARCHIVO conexión.php A .inc, es decir, conexion.inc.
TE VUELVO A REPETIR, NO MODIFIQUES NADA TODO DEJALO COMO TE LO DEJÉ,

SALUDOS!
  #22 (permalink)  
Antiguo 07/05/2011, 08:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 92
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: insertar en datatabase solo filas no vacias...

angelfcm eres un genio!!! Al final conseguí.

Como hago para agradecerte? como pongo mas karma?

agradezco también el ayuda de fekaa11. también a el quiero agradecerlo y poner mas karma.
  #23 (permalink)  
Antiguo 07/05/2011, 09:34
(Desactivado)
 
Fecha de Ingreso: abril-2011
Mensajes: 153
Antigüedad: 13 años
Puntos: 236
Respuesta: insertar en datatabase solo filas no vacias...

No hay de que, me gusta hacer este tipo de cosas y me alegra que al fin se haya resolvido tu problema. Mientras aprendas, me gustará seguirte ayudarte, hasta luego!

Última edición por angelfcm; 07/05/2011 a las 23:43

Etiquetas: campos, vacios
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 15:09.