Foros del Web » Programando para Internet » PHP »

introducir datos de un checkbox

Estas en el tema de introducir datos de un checkbox en el foro de PHP en Foros del Web. Hola a todos. Tengo un problema, he creado dos tablas en una base de datos, una (deportes) con los deportes e iddeporte y otra (clientes) ...
  #1 (permalink)  
Antiguo 04/11/2009, 13:58
 
Fecha de Ingreso: octubre-2009
Ubicación: Córdoba
Mensajes: 25
Antigüedad: 14 años, 6 meses
Puntos: 1
introducir datos de un checkbox

Hola a todos.
Tengo un problema, he creado dos tablas en una base de datos, una (deportes) con los deportes e iddeporte
y otra (clientes) con nombres, idnombre e iddeporte.

quiero que salga un formulario donde el cliente ponga su nombre y de un checkbox seleccione uno o varios deportes.
estos datos deben de introducirse en la base de datos, exactamente en la tabla clientes.
También quiero que se puedan listar por ejemplo saber cuantos practican futbol, por eso la tabla de deportes.
El problema es el siguiente, los datos del formulario que rellena el cliente llegan bien, pero solo se introduce en la tabla un deporte de los varios que ha podido marcar, ¿como hago el insert para que entren todos los deportes marcados?
aqui va el codigo.

<td>
<p><b>Deporte:</b></>
</td>
<td width ="150">

<input type="checkbox" name="iddeporte[]" value="1">tenis
<br>
<input type="checkbox" name="iddeporte[]" value="2">natación
<br>
<input type="checkbox" name="iddeporte[]" value="3">futbol
<br>
<input type="checkbox" name="iddeporte[]" value="4">baloncesto
<br>

</td>

los valores "value" corresponden con el iddeporte de la tabla deportes.

cuando verifico, se han enviado bien los valores:
$iddeporte=join(",", $_POST['iddeporte']);

echo $iddeporte;
se listan los diferentes iddeporte introducidos.

hasta aqui todo bien,

pero en la base de datos solo inserta un iddeporte, aqui va el codigo que me da problemas

function insert_deporte($iddeporte, $nombre)


{
$conn = db_connect();


// inserta nuevo cliente en la base de datos


$query = 'INSERT INTO `ingenielex`.`clientes` (`iddeporte`, `nombre`) VALUES ("'.$iddeporte.'", "'.$nombre.'");';

$result = mysql_query($query);

if (!$result)
{
echo "<h2>No se ha podido introducir al cliente '$nombre'</h2>";

return false;
}

else

echo "<h2>El cliente '$nombre' ha sido introducido.</h2>";

return true;

}

Muchas gracias
  #2 (permalink)  
Antiguo 04/11/2009, 14:04
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: introducir datos de un checkbox

A que te referis con que inserta solo un iddeporte? que solo ingresa uno de los deportes tildados?

Que tamaño tiene el campo iddeporte en tu base de datos? Por ahi es corto y no te almacena todo.

Q lindo! una web de deportes! Yo los amo completamente jeje....en lo q quieras te puedo ayudar!

Saludos.
  #3 (permalink)  
Antiguo 04/11/2009, 15:00
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: introducir datos de un checkbox

Hola
Pues ya que los envias como un array, debes
recorrerlos como tal para que se inserten tantos
como seleccionaste, puedes usar un for o un foreach
para eso
prueba y nos comentas
saludos
  #4 (permalink)  
Antiguo 04/11/2009, 15:08
Avatar de _-ZeuS-_  
Fecha de Ingreso: junio-2007
Ubicación: Quito, Ecuador! ;)
Mensajes: 100
Antigüedad: 16 años, 10 meses
Puntos: 7
Respuesta: introducir datos de un checkbox

Hola es fácil lo que pasa es ke no estás realizando el sql correctamente mira lo que tienes que hacer es esto:

Recibes los datos por $_POST así:

Código PHP:
$nombre=$_POST["id_nombre"];
$iddeporte=$_POST["id_deporte"
ahora bien te recuerdo que cuando hacemos name="datos[]" lo que estás haciendo es un array de html ahora para ver cojer y guardar todos los valores debes hacer algo así:

Código PHP:
for ($i=0;$i<count($iddeporte);$i++){
      
$query 'INSERT INTO `ingenielex`.`clientes` (`iddeporte`, `nombre`) VALUES ("'.$iddeporte[$i].'", "'.$nombre.'");';
      
$result mysql_query($query);
   
//aquí van las validaciones o extras.


Y listo espero ke esto te ayude
  #5 (permalink)  
Antiguo 04/11/2009, 16:09
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: introducir datos de un checkbox

Si quieres guardar todos los valores que se hayan seleccionado en un solo campo, puedes usar serialize()
__________________
Sin Ideas
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 04:36.