Foros del Web » Programando para Internet » PHP »

Utilizar Select multiple para insertar en una tabla de mysql

Estas en el tema de Utilizar Select multiple para insertar en una tabla de mysql en el foro de PHP en Foros del Web. Hola, tengo dos tablas, destinos y destinossugeridos, en la cual los destinossugeridos se componen de los mismos destinos. Deseo realizar un select multiple que seleccione ...
  #1 (permalink)  
Antiguo 20/06/2012, 13:20
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 0
Utilizar Select multiple para insertar en una tabla de mysql

Hola, tengo dos tablas, destinos y destinossugeridos, en la cual los destinossugeridos se componen de los mismos destinos.
Deseo realizar un select multiple que seleccione los destinos que van a formar parte de destinossugeridos.

En primera instancia hago un queri
Código PHP:
$querymysql_query ("SELECT destinos.IDDESTINOS,destinos.NOMBRE,destinossugeridos.IDDESTINOS FROM destinos LEFT JOIN destinossugeridos
                        ON destinos.IDDESTINOS=destinossugeridos.IDDESTINOS"
);
                        
                        
                   
$CONTENIDO.="<select multiple size=4 NAME=IDDESTINOSSUGERIDOS[]>";
                   
   while (
$row3 mysql_fetch_row($query)) 
      {
        
$CONTENIDO.="<option value= '".$row3["NOMBRE"]."'>1</select>";
      }
      
$CONTENIDO.="<input type=submit value='Grabar'>"
primero que nada quiero saber si hago bien en seleccionar "<option value= '".$row3["NOMBRE"]."'> y lo que quiero saber es como sería el insert en la tabla destinossugeridos. Gracias.
  #2 (permalink)  
Antiguo 20/06/2012, 13:25
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Utilizar Select multiple para insertar en una tabla de mysql

A tu primer pregunta, los options deben estar así:

<option value="valor de la opcion">Lo que verá el usuario</option>

A tu segunda pregunta, tienes varias opciones:
1. Guardar los datos separando por un caracter
2 guardar en otra tabla manteniendo un índice al registro
  #3 (permalink)  
Antiguo 20/06/2012, 14:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Utilizar Select multiple para insertar en una tabla de mysql

Hola ocp001a, Gracias por tu respuesta.. me interesaria saber, con un ejemplo sencillo, por favor, como sería la opción2.

Gracias.
  #4 (permalink)  
Antiguo 20/06/2012, 15:58
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Utilizar Select multiple para insertar en una tabla de mysql

Guardarías los datos principales en tu tabla, esta debe tener algún identificador único, puede ser un id autoincrementable. una vez insertado el registro, preguntar a mysql qué id le dio, pudiendo hacer esto con mysql_insert_id()

Luego, en otra tabla, tendrías el campo con los datos del select, más el id con que se van a relacionar, para esto necesitas recorrer las opciones del select e ir insertando en la tabla los valores con el id obtenido del mysql_insert_id()
  #5 (permalink)  
Antiguo 20/06/2012, 16:29
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Utilizar Select multiple para insertar en una tabla de mysql

Muchas gracias! entiendo lo que dices, pero no se como hacerlo en código, soy novata en php y me está costando bastante. Algo saldrá seguramente.

Gracias.
  #6 (permalink)  
Antiguo 20/06/2012, 16:41
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Utilizar Select multiple para insertar en una tabla de mysql

¿Tienes alguna duda más concreta? yo suelo sugerir ideas de cómo hacer las cosas sin dar código a menos que sea complejo, para que así la persona pueda desarrollar sus capacidades.

Podemos guiarte paso a paso, siempre que muestres tus avances y preguntes por casos específicos.
  #7 (permalink)  
Antiguo 20/06/2012, 17:20
 
Fecha de Ingreso: octubre-2010
Mensajes: 32
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Utilizar Select multiple para insertar en una tabla de mysql

Entiendo, he logrado hacer lo que me decias.. usé este código
Código PHP:
Ver original
  1. $query= "SELECT destinos.IDDESTINOS,destinos.NOMBRE,destinossugeridos.IDDESTINOS FROM destinos LEFT JOIN destinossugeridos
  2.                        ON destinos.IDDESTINOS=destinossugeridos.IDDESTINOS";
  3.                        $resultado3= mysql_query($query, $conn);
  4.                        
  5.                        
  6.                    $CONTENIDO.="<select multiple size=4 NAME=IDDESTINOSSUGERIDOS[]>";
  7.                    
  8.    while ($row3 = mysql_fetch_row($resultado3))
  9.       {
  10.         $CONTENIDO.="<option value= '".$row3['0']."'> '".$row3['1']."'</option>";
  11.       }
  12.      
  13. $CONTENIDO.="</select><input type=submit value='Grabar'>";
Esto funciona, ahora mi duda es como hago el insert.
Gracias por tu ayuda.
  #8 (permalink)  
Antiguo 20/06/2012, 19:02
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Utilizar Select multiple para insertar en una tabla de mysql

Bueno, no veo como envías la información, pero asumiendo que será por POST, y asumiendo que sabes como hacer un insert del registro normal, en tu script donde recibas la información:

Código PHP:
Ver original
  1. mysql_query("insert into mi_tabla values ('$valor1','$valor2','$valor3','$etc')");
  2. $ultimoid=mysql_insert_id();
  3.  
  4. foreach($_POST['IDDESTINOSSUGERIDOS'] as $n =>$valor){//recorremos las opciones del select seleccionadas
  5.     mysql_query("insert into mitabla2 values ('$ultimoid','$valor')");//insertamos id relacionado y valor del select
  6. }

Etiquetas: mysql, select, tabla
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:02.