Foros del Web » Programando para Internet » PHP »

entrar datos array checkbox en BD

Estas en el tema de entrar datos array checkbox en BD en el foro de PHP en Foros del Web. Buenos días a todo el mundo. Tengo unos datos en forma de array que provienen de unos checkbox. Para quien lo necesite, para recoger los ...
  #1 (permalink)  
Antiguo 02/05/2013, 02:22
 
Fecha de Ingreso: octubre-2010
Ubicación: Costa Brava
Mensajes: 58
Antigüedad: 13 años, 6 meses
Puntos: 2
entrar datos array checkbox en BD

Buenos días a todo el mundo.

Tengo unos datos en forma de array que provienen de unos checkbox.
Para quien lo necesite, para recoger los datos de los checkbox y tenerlos en un array lo hago así (los creo a través de consulta a la BD):

Código PHP:
$sql_sv = ("select sv_id, sv_nm from serv");
$query_sv pg_exec($dbconn$sql_sv) or die (odbc_errormsg());
    while (
$row pg_fetch_array($query_sv))        
    {
    echo    
'<input type="checkbox" id="sv" name="sv[]" value="'.$row['sv_id'].'"><span class="forms">'.$row['sv_nm'].'</span><br>';
    }; 
con el método post recojo los datos seleccionados y aquí tengo la duda de si voy por buen camino. Lo que hago actualmente es:
Código PHP:
$sv $_POST['sv']; //sv_id
        
$countsv count($sv);
        for (
$o 0$o $countsv$o++) {
        echo 
$sv[$o];} 
el resultado de esto es los id de la BD en forma de string. Por ejemplo, si el post mandaba [sv]=>(Array [0]=>2 [1]=>4) al final lo que tengo es 24.

Lo que yo debería poder ingresar a la BD debería ser $sv=2 y $sv=4, puesto que son los id de los registros. Si no me explico lo suficiente avisadme!

Alguien tendría idea de cómo conseguirlo? Mil gracias!
  #2 (permalink)  
Antiguo 02/05/2013, 04:26
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 1 mes
Puntos: 28
Respuesta: entrar datos array checkbox en BD

En lugar de for, utiliza foreach:

Código PHP:
Ver original
  1. foreach($_POST['sv'] as $check) {
  2.    echo $check; //imprime el valor de cada checkbox
  3. }
  #3 (permalink)  
Antiguo 02/05/2013, 10:09
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: entrar datos array checkbox en BD

Holas, Tetide.

Si mal no entiendo, por ahora quieres sólo imprimir el resultado en pantalla para corroborar que te van llegando bien los datos, no?

La solución de @pro0 es una buena alternativa a lo que expusiste de ejemplo, aunque sigue mostrando los valores pegados ("24" en vez de "2" y "4"). En ese sentido la solución es tan simple como colocar un separador al imprimir:

Código PHP:
$sv $_POST['sv']; //sv_id
$countsv count($sv);
for (
$o 0$o $countsv$o++) 
{
 echo 
$sv[$o]."\n"// aca yo puse un salto de linea, tú puedes poner un vacío u otro símbolo cualquiera, como un guión, slash, etc...

Si lo que quieres es tener los valores por separado para tus consultas SQL, si no quieres ejecutar de inmediato las sentencias, sólo tendrías que crear otro array para almacenar las consultas SQL, colgándote del largo del array recibido del formulario.

Código PHP:
// esta es una forma ultra sencilla, también lo puedes hacer con el foreach
$countsv count$_POST['sv']);
$consulta = array();
for (
$o 0$o $countsv$o++) 
{
 
$consulta[$o] = "select * from tabla where id = ".$_POST["sv"][$o];

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #4 (permalink)  
Antiguo 03/05/2013, 03:50
 
Fecha de Ingreso: octubre-2010
Ubicación: Costa Brava
Mensajes: 58
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: entrar datos array checkbox en BD

Uoooh gracias!

Comprobado que está bien lo que quiero es entrarlo en la BD, creo quecon lo que me habéis comentado algo haré, os lo cuento más tarde a ver si lo he logrado ;)

Gracias quinqui y pr0!!

Etiquetas: bd, checkbox, registro, select, sql
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:25.