Ver Mensaje Individual
  #44 (permalink)  
Antiguo 19/12/2012, 12:41
Avatar de DeivisAndres
DeivisAndres
 
Fecha de Ingreso: febrero-2012
Ubicación: Colombia
Mensajes: 305
Antigüedad: 12 años, 2 meses
Puntos: 41
Respuesta: llenar arreglo con checkbox y caja de texto

Creo que estas formando una tormenta en un vaso de agua, y creo que la manera como estas manejando los datos para almacenarlos en la BD es incorrecta, porque si lo que quieres es guardar las opciones que el usuario a elegido el REPLACE no es la mejor opción, por que si el mismo usuario elije mas de una opción lo que te va hacer es a tomar el ultimo mas no todas la opciones que el usuario a elegido ya que lo que hace es sobrescribir y la mejor opción seria el INSERT. ya que si necesitas mostrar las opciones que el usuario a elegido solo te mostrara una, y si el usuario eligió tres no se te mostraran. y para implementarlo a tu manera no es nada complicado si lo que quieres es ponerlo en una pagina solo tienes que hacer esto:

Código PHP:
Ver original
  1. <?php      
  2.     /** conexion ***************************/
  3.      $link = mysql_connect('localhost', 'root', ''); // conectamos a la base de datos
  4.      if(!$link) { // si no se conecta que mande error
  5.         die("Error al intentar conectar: ".mysql_error());
  6.      }
  7.      $db_link = mysql_select_db('prueba', $link); // seleccionamos la base de datos
  8.      if(!$db_link) { // si no selecciona la BD que mande error
  9.         die("Error al intentar seleccionar la base de datos". mysql_error());
  10.      }
  11.      /** fin conexion ************************/
  12.    
  13.     $showsql = mysql_query("SELECT * FROM tema", $link) or die(mysql_error());
  14.    
  15.     include 'conection.php';   
  16.     if(isset($_REQUEST["ingresar"]) && $_REQUEST["ingresar"] == "Ingresar"){           
  17.         $textos = $_REQUEST['norm'];  
  18.         $anios = $_REQUEST['anio'];
  19.         print_r($textos);
  20.         for ($i=0;$i<count($textos);$i++){
  21.             $cedula = "901215847584";                                      
  22.             if($anios[$i]!=0)                    
  23.             {
  24.                 $insertSQL = mysql_query("REPLACE INTO coco (identificacion, id_progsocial, ano) VALUES ('$cedula','".$textos[$i]."','".$anios[$i]."')", $link) or die(mysql_error());                         
  25.             }
  26.         }              
  27.     }
  28. ?>
  29. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml1-strict.dtd">
  30. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  31. <head>
  32. </head>
  33. <body>
  34. <form action="" method="post" name="form1" id="form1">
  35.     <?php
  36.         while($Mostrar = mysql_fetch_array($showsql)){ 
  37.     ?>
  38.         <input name="norm[]" type="checkbox" value="<?php echo $Mostrar['Valor']; ?>"><?php echo $Mostrar['Nombre']; ?>
  39.         <input name="anio[]" type="text" /><br />      
  40.     <?php
  41.         }
  42.     ?>
  43.     <input id="input" type="submit" name="ingresar" value="Ingresar" />
  44. </form>
  45. </body>
  46. </html>

NOTA: REPLACE funciona exactamente como INSERT, excepto que si un valor de la tabla tiene el mismo valor que un nuevo registro para un índice PRIMARY KEY o UNIQUE , el antiguo registro se borra antes de insertar el nuevo. Tenga en cuenta que a menos que la tabla tenga un índice PRIMARY KEY, o UNIQUE usar un comando REPLACE no tiene sentido. Es equivalente a INSERT, ya que no hay índice para determinar si un nuevo registro duplica otro.