Foros del Web » Programando para Internet » PHP »

Pasar arrays de php a mysql

Estas en el tema de Pasar arrays de php a mysql en el foro de PHP en Foros del Web. Hola a todos Tengo un pequeño problema con una base que estoy desarrollando... tengo una base en la cual tengo 10 CHECBOXES y los pongo ...
  #1 (permalink)  
Antiguo 07/11/2006, 12:34
 
Fecha de Ingreso: septiembre-2006
Mensajes: 52
Antigüedad: 17 años, 7 meses
Puntos: 1
Pasar arrays de php a mysql

Hola a todos

Tengo un pequeño problema con una base que estoy desarrollando...

tengo una base en la cual tengo 10 CHECBOXES y los pongo en un array de la siguiente manera:

abc_form1.php
<form method="post" action="abc_check.php">
<tr>
<td><div align="right" class="Estilo3">Movimiento : </div></td>
<td><p>
<input name="smov[]" type="checkbox" id="mov" value="a"> a<br>
<input name="smov[]" type="checkbox" id="mov" value="b"> b<br>
<input name="smov[]" type="checkbox" id="mov" value="c"> c<br>
<input name="smov[]" type="checkbox" id="mov" value="d"> d<br>
<input name="smov[]" type="checkbox" id="mov" value="e"> e<br>
<input name="smov[]" type="checkbox" id="mov" value="f"> f<br>
<input name="smov[]" type="checkbox" id="mov" value="g"> g<br>
<input name="smov[]" type="checkbox" id="mov" value="h"> h<br>
<input name="smov[]" type="checkbox" id="mov" value="i"> i<br>
<input name="smov[]" type="checkbox" id="mov" value="j"> j
</p>
</td>
</tr>
</form>

Los valores que seleccione el usuario fianl del checkbox los quiero guardar en un campo BLOB de mi base de datos (en MySql), pero aqui es donde no se como pasar todos valores que seleccione el usuario ya que no me envia nada


abc_check.php
<?php
include("abc_conec.php");
$link=Conectarse();


$Sql="INSERT INTO abc (mov)
VALUES ( '".$_POST["smov"]."')";
mysql_query($Sql,$link);

header("Location: abc_data_check_add.php");
?>

por favor alguien que me pueda orientar donde esta mi error
gracias !!
  #2 (permalink)  
Antiguo 07/11/2006, 16:43
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Bueno pues creo que en el formulario que pusiste de ejemplo te falta el botón de envío, que debería de ser algo más o menos parecido a esto:
Código PHP:
<input name="smov[]" type="checkbox" id="mov" value="j"j
</p>
<
input type="submit" name="submit" value="Enviar">
</
td
Otra cosa, en tu consulta no le deverías de pasar directamente el array:
Código PHP:
$Sql="INSERT INTO abc (mov) VALUES ( '".$_POST["smov"]."')"
Los valores se los deberías de pasar como una cadena de esta forma:
Código PHP:
<?php
include("abc_conec.php");
$link=Conectarse();

$movimiento $_POST['smov']; // definimos una variable corta

$con_comas implode","$movimiento ); // separamos cada uno de los valores por una coma y esta variable convertirá el array $movimiento en una cadena

$Sql="INSERT INTO abc (mov) VALUES ( '".$con_comas."')"// le pasamos la cadena que creamos anteriormente
mysql_query($Sql,$link) or die( mysql_error() ); 

header("Location: abc_data_check_add.php");
?>
Como vez, yo separe los valores de tu array por una coma pero tu los puedes separar por un espacio o lo que se te antoje gracias a la función implode(). Para saber más acerca de esta función checa este enlace:
http://www.php.net/manual/es/function.implode.php

Además supongo que en el include("abc_conec.php") declaras las variable de conexion y seleccion de base de datos ya que no las veo y que deberían ser unas líneas parecidas a estas:
Código PHP:
mysql_pconnect'servername''username''password' );
mysql_select_db'basededatos' ); 
Espero haberme dado a entender y que esto te haya servido por lo menos para darte una idea. Suerte
  #3 (permalink)  
Antiguo 13/11/2006, 14:16
 
Fecha de Ingreso: septiembre-2006
Mensajes: 52
Antigüedad: 17 años, 7 meses
Puntos: 1
Gracias!!!
Si me funcionó
Yo invito las chelas!!
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 09:41.