Foros del Web » Programando para Internet » PHP »

Insertar Varios Checkbox a la BD

Estas en el tema de Insertar Varios Checkbox a la BD en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema y no se como solucionarlo. En el siguiente codigo tengo un chekbox, si esta seleccionado se inserta en la base ...
  #1 (permalink)  
Antiguo 07/02/2009, 14:09
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 0
Insertar Varios Checkbox a la BD

Hola,

tengo el siguiente problema y no se como solucionarlo.

En el siguiente codigo tengo un chekbox, si esta seleccionado se inserta en la base de datos SI, si no esta seleccionado se inserta NO, eso lo hago mediante un IF.

Código PHP:
<div>
    <form name="form1" method="post" action="nuevoproducto.php">
      <p>
        <label>Codigo Producto
          <input type="text" name="codigo" id="codigo">
          <br>
          Tipo Memoria
          <input type="text" name="tipo" id="tipo">
        </label>
      </p>
      <p>
        <label>Bus
          <input type="text" name="bus" id="bus">
        </label>
      </p>
      <p>
        <label>Capacidad
          <input type="text" name="capacidad" id="capacidad">
        </label>
      </p>
      <p>
        <label>Marca
          <input type="text" name="marca" id="marca">
        </label>
      </p>
      <p>
        <label>
          <input type="checkbox" name="nuevo" id="nuevo">
          nuevo</label>
      </p>
      <p>
        <label>Enviar
          <input type="submit" name="enviar" id="enviar" value="Enviar">
        </label>
      </p>
    </form>
</div>
<?
require('config.php');
$codigo=$_POST['codigo'];
$tipo=$_POST['tipo'];
$bus=$_POST['bus'];
$capacidad=$_POST['capacidad'];
$marca=$_POST['marca'];
$nuevo=$_POST['nuevo'];
if(
$nuevo == ''){

mysql_query("INSERT INTO productos(codigo, tipo, bus, capacidad, marca, nuevo)
            VALUES('$codigo', '$tipo', '$bus', '$capacidad', '$marca', 'NO')"
,$conecta);
mysql_close($conecta);
}else{
    
mysql_query("INSERT INTO productos(codigo, tipo, bus, capacidad, marca, nuevo)
            VALUES('$codigo', '$tipo', '$bus', '$capacidad', '$marca', 'SI')"
,$conecta);
mysql_close($conecta);
}
?>
</body>
</html>

El problema es que necesito agregar varios checkbox siguiendo la logica SI/NO, existe alguna forma de automatizar el proceso para no tener que estar preguntando con IF cada checkbox ????


El formulario final seria algo como esto, agregando 2 o más checkbox.


Alguna idea??


Gracias

Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Documento sin título</title>
</head>

<body>
<div>
    <form name="form1" method="post" action="nuevoproducto.php">
      <p>
        <label>Codigo Producto
          <input type="text" name="codigo" id="codigo">
          <br>
          Tipo Memoria
          <input type="text" name="tipo" id="tipo">
        </label>
      </p>
      <p>
        <label>Bus
          <input type="text" name="bus" id="bus">
        </label>
      </p>
      <p>
        <label>Capacidad
          <input type="text" name="capacidad" id="capacidad">
        </label>
      </p>
      <p>
        <label>Marca
          <input type="text" name="marca" id="marca">
        </label>
      </p>
      <p>
        <label>
          <input type="checkbox" name="nuevo" id="nuevo">
          nuevo</label>
      </p>
      <p>
        <label>
          <input type="checkbox" name="fallas" id="fallas">
          nuevo</label>
      </p>
      <p>
        <label>
          <input type="checkbox" name="accesorios" id="accesorios">
          nuevo</label>
      </p>
      <p>
        <label>Enviar
          <input type="submit" name="enviar" id="enviar" value="Enviar">
        </label>
      </p>
    </form>
</div>
<?
require('config.php');
$codigo=$_POST['codigo'];
$tipo=$_POST['tipo'];
$bus=$_POST['bus'];
$capacidad=$_POST['capacidad'];
$marca=$_POST['marca'];
$nuevo=$_POST['nuevo'];
$
if(
$nuevo == ''){

mysql_query("INSERT INTO productos(codigo, tipo, bus, capacidad, marca, nuevo)
            VALUES('$codigo', '$tipo', '$bus', '$capacidad', '$marca', 'NO')"
,$conecta);
mysql_close($conecta);
}else{
    
mysql_query("INSERT INTO productos(codigo, tipo, bus, capacidad, marca, nuevo)
            VALUES('$codigo', '$tipo', '$bus', '$capacidad', '$marca', 'SI')"
,$conecta);
mysql_close($conecta);
}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 07/02/2009, 15:19
 
Fecha de Ingreso: mayo-2007
Ubicación: España
Mensajes: 147
Antigüedad: 16 años, 10 meses
Puntos: 3
Respuesta: Insertar Varios Checkbox a la BD

creo que puedes solucionarlo así:

Código PHP:
require('config.php');
$codigo=$_POST['codigo'];
$tipo=$_POST['tipo'];
$bus=$_POST['bus'];
$capacidad=$_POST['capacidad'];
$marca=$_POST['marca'];
$nuevo=empty($_POST['nuevo']) 'NO''SI';

mysql_query("INSERT INTO productos(codigo, tipo, bus, capacidad, marca, nuevo)
            VALUES('$codigo', '$tipo', '$bus', '$capacidad', '$marca', $nuevo)"
,$conecta); 
  #3 (permalink)  
Antiguo 07/02/2009, 19:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 0
Respuesta: Insertar Varios Checkbox a la BD

Da error el código,


Saludos

Última edición por vito25; 07/02/2009 a las 19:44
  #4 (permalink)  
Antiguo 08/02/2009, 05:04
 
Fecha de Ingreso: junio-2007
Mensajes: 70
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: Insertar Varios Checkbox a la BD

Cita:
Iniciado por vito25 Ver Mensaje
Da error el código,


Saludos
Prueba este:

Código PHP:

require('config.php');
$codigo=$_POST['codigo'];
$tipo=$_POST['tipo'];
$bus=$_POST['bus'];
$capacidad=$_POST['capacidad'];
$marca=$_POST['marca'];
$nuevo = (empty($_POST['nuevo']) ?  'NO' 'SI' );

mysql_query("INSERT INTO productos(codigo, tipo, bus, capacidad, marca, nuevo)
            VALUES('$codigo', '$tipo', '$bus', '$capacidad', '$marca', '$nuevo')"
,$conecta); 
  #5 (permalink)  
Antiguo 08/02/2009, 08:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 0
Respuesta: Insertar Varios Checkbox a la BD

Ahora funciona ..



Gracias
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 08:47.