Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Recoger valores de un checkbox sacado de mysql en array

Estas en el tema de Recoger valores de un checkbox sacado de mysql en array en el foro de PHP en Foros del Web. Buenas tardes a todos, llevo unos dias pegándome con este problema. primero os lo explico y después muestro el código. El tema es que quiero ...
  #1 (permalink)  
Antiguo 09/04/2014, 07:44
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años
Puntos: 4
Pregunta Recoger valores de un checkbox sacado de mysql en array

Buenas tardes a todos,

llevo unos dias pegándome con este problema. primero os lo explico y después muestro el código.

El tema es que quiero mostrar unos checkbox en el formulario con unos valores sacados de mysql. A esos checkbox les doi como nombre seleccion[]. Esto funciona, y por pantalla me muestra lo que debe, incluso si marco varios checkbox, puedo printar los valores escogidos.

El tema es que por cada checkbox seleccionada tengo que hacer un insert en otra tabla, y no soy capaz de plantear como sacar los valores de ese seleccion[].

Checkbox en el formulario:
Código:
echo "<fieldset>";
echo "<legend>$category_place</legend>";
$sql="SELECT name_es, idTipoLugar FROM tiposlugar";
$result=mysql_query($sql);
$i=0;
while ($row=mysql_fetch_array($result))
{
echo "<input type='checkbox' name=\"seleccion[]\" id='" . $row['name_es'] . "' value='" . $row['idTipoLugar'] . "'> " . $row['name_es'] . " </input><br>";
$i++;
}
echo "</fieldset>";
Esto muestra una lista de checkbox con valores sacados de mysql.


PHP
No se si esto es correcto
Código:
$tipoLugar=implode(',',$_POST['seleccion']);
Esto me devuelve, por ejemplo: 2,5,7.

Lo que necesito es saber como montar un while con la insert:

$insert = "INSERT INTO lugar_tiposlugar (codLugar, codTipoLugar)
VALUES('$codLugar','$tipoLugar')";

Y poder meter los valores sacados del checkbox en el campo codTipolugar, en la variable $tipoLugar.

Gracias.
  #2 (permalink)  
Antiguo 09/04/2014, 07:59
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Recoger valores de un checkbox sacado de mysql en array

Usa mejor un foreach para recorrer el array de $_POST['seleccion'] y dentro del bucle efectua las query a mysql o genera un sql para ejecutarlo cuando se acabe el bucle
  #3 (permalink)  
Antiguo 09/04/2014, 13:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años
Puntos: 4
Respuesta: Recoger valores de un checkbox sacado de mysql en array

A ver... he intentado hacer lo que dices con el foreach, y en modo prueba, consigo sacar por pantalla todo correcto, pero a la hora de hacer la insert, no la hace, no inserta nada, pero tampoco da ningún error.

Tengo:
Código:
$selecciones = $_POST['seleccion'];

foreach ($selecciones as &$tipoLugar) 
			{
				//printf("$tipoLugar");
				$insert = "INSERT INTO lugar_tiposlugar (codLugar, codTipoLugar) VALUES('$codLugar','$tipoLugar')";
			}
$codLugar tiene valor (fijo, siempre el mismo), $tipoLugar también (va cambiando según el ciclo del foreach)... pero ese insert no hace nada.

¿Alguna idea?


EDITO: $insert si hace algo, pero solo inserta en la tabla el útimo valor adquirido por $tipoLugar.

Última edición por telkrom; 09/04/2014 a las 13:09
  #4 (permalink)  
Antiguo 09/04/2014, 13:40
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años
Puntos: 4
Respuesta: Recoger valores de un checkbox sacado de mysql en array

"Solucionado", tenía la inserción fuera del foreach...:S

Así si:

foreach ($selecciones as &$tipoLugar)
{
printf("$tipoLugar");
$insertar = "INSERT INTO lugar_tiposlugar (codLugar, codTipoLugar) VALUES('$codLugar','$tipoLugar')";
$insercion = mysql_query($insertar);
}

Aunque a pesar de hacer la inserción bien, me devuelve el siguiente mensaje de error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
  #5 (permalink)  
Antiguo 09/04/2014, 13:51
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Recoger valores de un checkbox sacado de mysql en array

si los valores de $tipoLugar son de tipo numeric no necesitas las comillas en la consulta
  #6 (permalink)  
Antiguo 09/04/2014, 13:52
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 13 años
Puntos: 4
Respuesta: Recoger valores de un checkbox sacado de mysql en array

Cita:
Iniciado por Dalam Ver Mensaje
si los valores de $tipoLugar son de tipo numeric no necesitas las comillas en la consulta
Gracias por responder, pero justo lo he solucionado.

Estaba haciendo la comprobación de errores mal.

Gracias por tu tiempo y saludos.

Etiquetas: checkbox, insert, mysql
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 07:39.