Foros del Web » Programando para Internet » PHP »

seleccion multiple de base de datos, guardar en bd

Estas en el tema de seleccion multiple de base de datos, guardar en bd en el foro de PHP en Foros del Web. Hola, estoy haciendo una seleccion multiple, pero ahora no se como recuperar los datos para guardarlos en mi base de datos, hasta aquí va mi ...
  #1 (permalink)  
Antiguo 08/01/2013, 20:36
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 0
seleccion multiple de base de datos, guardar en bd

Hola, estoy haciendo una seleccion multiple, pero ahora no se como recuperar los datos para guardarlos en mi base de datos, hasta aquí va mi código

Código PHP:
<form action="" method="post" enctype="multipart/form-data" >
  <?php  

 
if($conexion=conexion()){

 
$sql='SELECT distinct sm_d FROM SM';
 
$resultado=mysql_query($sql,$conexion);
 echo (
"Seleccionar:");
 echo 
"<select multiple='multiple' name='id_sm[]'>";
 while(
$fila=mysql_fetch_array($resultado,MYSQL_BOTH))
 {
 echo 
"<option value='".$fila['id_sm']."'>".$fila['sm_d']."</option>";
 }
 echo 
"</select>";
 echo
"<br><input type=\"submit\" value=\"Guardar\" name=\"guardar\"/>";
 echo
"</form>";
 }
?>
Pero ahora no se como recuperar los datos....observe una opcion en el manual de php pero haciendolo así, no me sirve, lo hago de la siguiente forma

Código PHP:
echo"<form action=\"\" method=\"post\" enctype=\"multipart/form-data\" >";
 if(isset(
$_POST['guardar'])){
 
 
$id_seme=array();
 
$id_seme=$_POST['id_sm'];
 foreach(
$id_seme as $value) { 
 echo 
$value'<br>\n';} 
Alguien me puede ayudar, porfas¡¡¡.......
  #2 (permalink)  
Antiguo 08/01/2013, 20:54
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: seleccion multiple de base de datos, guardar en bd

Ya estás recuperando un array de ids en $_POST['id_sm']. ¿Qué quieres hacer exactamente? ¿Cómo te sirve?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 08/01/2013, 21:03
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: seleccion multiple de base de datos, guardar en bd

Hola Andrés, pues se supone que si estoy recuperando los valores....pero, no los imprime, no me salen los valores, de echo uso la impresión para ver si si los recupera, y después ya guardarlos en la base de datos

mira también ya usé esta opción y no me sale nada

Código PHP:
$id_sm$_POST[id_sm];
for (
$i=0;$i<count($id_sm);$i++)    
{
echo 
$id_sm[$i];

por eso creo que no recupera los valores,.... es mas no se si si sirve la forma en que hago la selección, la puedes checar para ver si es correcta¡¡... miles de gracias¡¡¡
  #4 (permalink)  
Antiguo 08/01/2013, 21:16
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: seleccion multiple de base de datos, guardar en bd

El código PHP está bien.

Al parecer tu error está en la consulta:

Código SQL:
Ver original
  1. SELECT DISTINCT sm_d FROM SM

Si te fijas estás seleccionando solamente el campo sm_d y por eso no existen en el array tus id_sm

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 14/01/2013, 10:25
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: seleccion multiple de base de datos, guardar en bd

hola, pues ya selecciono también id_sm, me queda de la siguiente forma:

Código PHP:
<form action="" method="post" enctype="multipart/form-data" > 
  <?php   

 
if($conexion=conexion()){ 

 
$sql='SELECT * FROM SM'
 
$resultado=mysql_query($sql,$conexion); 
 echo (
"Seleccionar:"); 
 echo 
"<select multiple='multiple' name='id_sm[]'>"
 while(
$fila=mysql_fetch_array($resultado,MYSQL_BOTH)) 
 { 
 echo 
"<option value='".$fila['id_sm']."'>".$fila['sm_d']."</option>"
 } 
 echo 
"</select>"
 echo
"<br><input type=\"submit\" value=\"Guardar\" name=\"guardar\"/>"
 echo
"</form>"
 } 
?>
y a la hora de recuperar con éste codigo:

Código PHP:
$id_sm$_POST[id_sm]; 
for (
$i=0;$i<count($id_sm);$i++)     

echo 
$id_sm[$i]; 

ya me imprime resultado, pero solo me aparece una sola selección, de echo solo aparece la ultima selección que realice, y yo quiero que sea multiple, ¿sabes dónde me estoy equivocando?, gracias¡¡¡¡¡¡¡saludos¡¡
  #6 (permalink)  
Antiguo 14/01/2013, 11:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: seleccion multiple de base de datos, guardar en bd

Así como lo tienes me funciona múltiple, imprime así:

Código PHP:
Ver original
  1. foreach ($id_sm as $id) {
  2.     echo "$id <br />";
  3. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 14/01/2013, 12:19
 
Fecha de Ingreso: octubre-2012
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: seleccion multiple de base de datos, guardar en bd

hola, no había problema, al parecer no se había actualizado la página correctamente, eso causaba que no se actualizaran todos los cambios, una cosa más, no sabía que era necesario tener CTRL para hacer selecciones salteadas, jajajja.... lo aprendí de un video en youtube.

GRACIAS¡¡¡¡¡¡¡¡¡¡¡¡¡¡

Entonces el codigo de mi respuesta anterior ya está bien y si da resultados¡¡

Etiquetas: bd, mysql, seleccion, 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 04:00.