Foros del Web » Programando para Internet » PHP »

insertar valores de checkbox en campo SET de myaql

Estas en el tema de insertar valores de checkbox en campo SET de myaql en el foro de PHP en Foros del Web. Hola. He estado buscando y no termino de encontrar lo que busco, asi que os lo voy a preguntar: Tego una base de datos con ...
  #1 (permalink)  
Antiguo 19/08/2004, 06:39
Avatar de sedinho  
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 0
insertar valores de checkbox en campo SET de myaql

Hola. He estado buscando y no termino de encontrar lo que busco, asi que os lo voy a preguntar:

Tego una base de datos con una tabla que tiene un campo que es de tipo SET con los posibles valores: aa, ee, cc, da.

Luego he creado un formulario con unos checkbox:

<input type="checkbox" name="extras[]" value="aa">Aire Acondicionado
<input type="checkbox" name="extras[]" value="ee">Elevalunas Electrico
<input type="checkbox" name="extras[]" value="ee">Cierre Centralizado
<input type="checkbox" name="extras[]" value="da">Direccion Asistida

Se que puedo recoger los valores de estos checkbox con:
if (isset($_POST['extras']))
{
foreach ($_POST['extras'] as $valor)
{
echo $valor."<br>";
}
}
else
{
echo "No seleccionado ..";
}

Lo que no se es como meter en el campo de tipo SET de la base de datos lo que he recogido antes en el formulario.

Espero que esta pregunta no se haya hecho muchas veces, yo no la he encontrado.

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 19/08/2004, 08:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. en el foro de PHP no sé si habrá hecho esa pregunta alguna vez .. pero lo que quiero llegar con este comentario es que la solución principal no es de "PHP" (tema que tienes resuelto en un 99%) sino de "SQL" ...

Los campos tipo "SET" (o mejor ENUM) definen una lista de valores separados por comas y con comillas si son cadenas .. Así que desde la lista de valores que obtienes con PHP y que lees (por qué es un array) con ese bucle foreach() tendrías que usar alguna función de tratamiento de arrays para conseguir una "cadena" (string) con el formato que buscas ..

Por ejemplo podrías usar implode()
www.php.net/implode

Código PHP:
$opciones="'".implode("','",$_POST['extras'])."'"
Verifica si es correcta la cadena que se genera haciendo un echo a $opciones ... (el bucle foreach() ya no tendrías que usarlo.

Un saludo,
  #3 (permalink)  
Antiguo 19/08/2004, 09:34
Avatar de sedinho  
Fecha de Ingreso: marzo-2003
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 0
¡¡¡Mil gracias Cluster!!!
Lo que me has dicho funciona pero con una pequeña modificacion:

$opciones=implode(",",$_POST['extras']);

De esta forma si que se inserta en la base de datos.


Muchas gracias de nuevo.
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 08:53.