Foros del Web » Programando para Internet » PHP »

como tomar el valor de un SELECT en formulario para escribirlo en mysql??

Estas en el tema de como tomar el valor de un SELECT en formulario para escribirlo en mysql?? en el foro de PHP en Foros del Web. tengo en un formulario 3 selescts, de los cuales solo quiero tomar 2, uno que es un select que cambia dependiendo de la opcion tomada ...
  #1 (permalink)  
Antiguo 27/09/2007, 20:15
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 0
como tomar el valor de un SELECT en formulario para escribirlo en mysql??

tengo en un formulario 3 selescts, de los cuales solo quiero tomar 2, uno que es un select que cambia dependiendo de la opcion tomada en el primero y el tercero que son multiples opciones.

como yo hago para tomar esos selects mediante php e escribirlos en una base de datos mysql???

aqui les dejo los formularios:
Código:
    <form method="post" action="record2.php">
      <label>Tu Nombre completo:
      <input name="nombre_" type="text">
      </label>
    *
      <p>&nbsp;</p>
Seleccione el a&ntilde;o de la presentacion o grabacion, luego seleccione abajo la fecha y el lugar de la presentacion o grabacion (Formato de fecha MES/DIA/A&Ntilde;O)
        <select name="uno[]" id="uno[]" onchange="adjs('?p&sel='+this.value)">
            <option value="0">seleccionar un año</option>
            <option value="1">1985 / 1987</option>
            <option value="2">1988</option>
            <option value="3">1989</option>
            <option value="4">1990</option>
            <option value="5">1991</option>
            <option value="6">1992</option>
            <option value="7">1993</option>
            <option value="8">1994</option>
            <option value="9">Otro</option>
        </select>
  *      </p>
      <div id="pp"><select name="dos[]" id="dos[]">
  </select></div>
    <p>
      <label><br />
      Tipo de Grabacion:
      <select name="formato[]" id="formato[]">
        <option value="DVD" selected="selected">DVD</option>
        <option value="LOSSLES">LOSSLES</option>
        <option value="LP, Ep, Vinil">LP, Ep, Vinil</option>
        <option value="CD (COMPACT DISC)">CD (COMPACT DISC)</option>
        <option value="CD (BOOTLEG)">CD (BOOTLEG)</option>
      </select>
      </label>
  *</p>
    <p>
      <label>Fuente:
      <input name="fuente" type="text">
</label>
    *</p>
    <p>
      <label>Generacion:
      <input name="generacion" type="text">
      </label>
  *</p>

    <p>* Campos Obligatorios</p>
    <label for="Submit"><br />
    </label>
    <input type="submit" name="Submit" value="Enviar">
  </form>
  <p>&nbsp;</p>
  </form>
y el php que tengo para tomar los valores de los campos normales, pero tambien quiero incluir los selects como hago?:
Código PHP:
<?php

// Si entramos es que todo se ha realizado correctamente

$link mysql_connect("localhost","root","password");
mysql_select_db("BASEDEDATOS",$link);

// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO tabla (`nombre`,`fuente`,`generacion`)
VALUES ("
.$_POST['nombre_'].",".$_POST['fuente'].",".$_POST['generacion'].")",$link);

// Ahora comprobaremos que todo ha ido correctamente
$my_error mysql_error($link);

if(!empty(
$my_error)) { 

echo 
"Ha habido un error al insertar los valores. $my_error"

} else {

echo 
"Los datos han sido introducidos satisfactoriamente";

}

?>


__________________
Solo se que nada se . . . Nirvana: Un Sentimiento Echo Realidad.

Última edición por kurtjavier; 27/09/2007 a las 20:24
  #2 (permalink)  
Antiguo 27/09/2007, 21:06
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: como tomar el valor de un SELECT en formulario para escribirlo en mysql??

Para tomar un select, simplemete lo ahces con POST,
si tu select se llama "name"

$_POST['name'];

saludos!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #3 (permalink)  
Antiguo 27/09/2007, 21:22
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: como tomar el valor de un SELECT en formulario para escribirlo en mysql??

si pero no me daba, con un select normal si me da, pero tengo otro que dependiendo lo que se seleccione en el select anterior este toma otros valores que tmb hjay que elegir uno es, asi como cuando te registras en una pagina y pones tu pais enseguida la otra casilla cambia a las provincias de tu pais, algo asi,

entonces hice eto para agregar solo el primer select, el normal de multiples opciones:
Código PHP:
<?php
$formato
=$_POST["formato"]; 
$countformato=count($formato);

for (
$i=0;$i<$countformato;$i++)


// Si entramos es que todo se ha realizado correctamente

$link mysql_connect("localhost","root","pass");
mysql_select_db("BASEDEDATOS",$link);

// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO material (`nombre`,`formato`,`fuente`,`generacion`)
VALUES ("
.$_POST['nombre_'].",'$formato[$i]',".$_POST['fuente'].",".$_POST['generacion'].")",$link);
}
}

// Ahora comprobaremos que todo ha ido correctamente
$my_error=mysql_error($link);

if(!empty(
$my_error)) { 

echo 
"Ha habido un error al insertar los valores. $my_error"

} else {

echo 
"Los datos han sido introducidos satisfactoriamente";

}
?>
entonces cuando quiero agregar el segundo SELECT que es el q cambia dependiendo de lo que se seleccione en otro anterior me da un error pero me da error despues que hace la consulta a la base de datos, fijate hago esto:
Código PHP:
<?php
$formato
=$_POST["formato"]; 
$countformato=count($formato);
$show=$_POST["dos"]; 
$countshow=count($show);

for (
$i=0;$i<$countshow;$i++)


for (
$i=0;$i<$countformato;$i++)


// Si entramos es que todo se ha realizado correctamente

$link mysql_connect("localhost","root","anavrin22");
mysql_select_db("coleccionistas",$link);

// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO material (`nombre`,`show`,`formato`,`fuente`,`generacion`)
VALUES ("
.$_POST['nombre_'].",'$show[$i]','$formato[$i]',".$_POST['fuente'].",".$_POST['generacion'].")",$link);
}
}

// Ahora comprobaremos que todo ha ido correctamente
$my_error=mysql_error($link);

if(!empty(
$my_error)) { 

echo 
"Ha habido un error al insertar los valores. $my_error"

} else {

echo 
"Los datos han sido introducidos satisfactoriamente";

}
?>
solo agrego el post de DOS que es mi select a una variable a la cual tambien le hago un contador igual como el primer select, pero cuando se suponer va a escribir en la base de datos me dice esto:
Código:
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in C:\xampp\htdocs\record2.php on line 25
Los datos han sido introducidos satisfactoriamente

y la linea 25 lo que contiene es esto:
Código PHP:
$my_error=mysql_error($link); 
no se que podra pasar alli ............ quien me echa una mano.
__________________
Solo se que nada se . . . Nirvana: Un Sentimiento Echo Realidad.
  #4 (permalink)  
Antiguo 28/09/2007, 07:06
Avatar de Juanvi.V  
Fecha de Ingreso: septiembre-2007
Mensajes: 5
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: como tomar el valor de un SELECT en formulario para escribirlo en mysql??

Yo pondría la conexión al servidor y la selección de la base de datos fuera del bucle (y cerraría la conexión al acabar el bucle con mysql_close).

Para el control de errores prefiero hacerlo así:

$result = mysql_query($query) or die("<b>Se ha producido un error de MySQL</b>.\n<br />Consulta: " . $query . "<br />\nError: (" . mysql_errno() . ") " . mysql_error());

Para saber si se ha producido el error no hace falta usar mysql_error, ya que mysql_query ya te lo dice; mysql_error simplemente es para que nos devuelva el texto del error producido.

Espero que te sirva.

Juanvi
Diseño web ArtVisual.es
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:50.