Foros del Web » Programando para Internet » PHP »

No me graba el año desde un option en mysql

Estas en el tema de No me graba el año desde un option en mysql en el foro de PHP en Foros del Web. Buenas No se porque no me esta grabando en la db el combo que uso para que el usuario seleccione el año, es decir mediante ...
  #1 (permalink)  
Antiguo 23/04/2009, 10:37
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
No me graba el año desde un option en mysql

Buenas

No se porque no me esta grabando en la db el combo que uso para que el usuario seleccione el año, es decir mediante un combo el usuario selecciona un año y junto a otros datos en un form se cargan en la db, todo se graba, todo excepto el año que esta en el combo, porque? tengo esto...los años los agarro de una db.

Código PHP:
<? 
include "conexio.php";

echo 
'Select One<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select * From anios";
$result=mysql_query($sSQL);

echo 
'<select name"anio" value="anio">';

//Mostramos los registros en forma de menú desplegable
while ($row=mysql_fetch_array($result))
{echo 
'<option name="anio" value="anio">'.$row["anio"];}
mysql_free_result($result); ?>
No entiendo que hago mal, es parte de un form, que luego inserto asi:

Código PHP:
$guardar mysql_query("INSERT INTO year (anio) VALUES ('$anio');"
que me esta faltando?, el form hace un
Código PHP:
<?=$PHP_SELF?>
  #2 (permalink)  
Antiguo 23/04/2009, 10:42
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No me graba el año desde un option en mysql

En el value de los option debes colocar el año que corresponde a la opción.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 23/04/2009, 10:45
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: No me graba el año desde un option en mysql

Decis que no estoy mostrando en el value ningun dato?

si hago esto no agarra nada...

Código PHP:
while ($row=mysql_fetch_array($result))
{echo 
'<option name="anio" value='.$row["anio"].'>';} 

Última edición por SeNdEr2003; 23/04/2009 a las 10:52
  #4 (permalink)  
Antiguo 23/04/2009, 10:53
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No me graba el año desde un option en mysql

¿Para qué los el name en los option? Además, todos los atributos HTML deben ir entre comillas por lo que debería ser:
Código php:
Ver original
  1. echo '<option value="'.$row["anio"].'"';

Además, si te fijas, el name del select está mal formado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 23/04/2009, 11:00
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: No me graba el año desde un option en mysql

Si, lo he notado, de esa manera no me graba igualmente el anio, ademas de que tampoco me lo muestra aunque lo logre hacer que muestre el año que agarra de la db, pero no me lo graba...

tengo esto ahora...
Código PHP:
{echo '<option name="anio" value="'.$row["anio"].'">'.$row["anio"];} 
no se porque no esta grabando, todos los campos estan bien, en la db se llama anio, los demas campos del form los graba...
  #6 (permalink)  
Antiguo 23/04/2009, 11:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No me graba el año desde un option en mysql

Muestra la salida HTML del formulario.

Además, debes recuperar $anio de acuerdo al método con $_GET o $_POST
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 23/04/2009, 11:19
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: No me graba el año desde un option en mysql

Es necesario hacer el GET POST si esta dentro de la misma pagina?, por ejemplo tengo el campo caption que no hago get ni post y graba bien porque hago un <?=$PHP_SELF?>

a que te refieres con la salida html?, funciona todo ok, como debe ser, es solo ese campo lo que no me graba, algo me esta faltando agarrar...probe con GET y POST pero nada...
  #8 (permalink)  
Antiguo 23/04/2009, 11:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No me graba el año desde un option en mysql

Con la salida HTML me refiero a que ejecutes tu página y en tu navegador vayas a "Ver Código Fuente" y copies la parte del formulario.

Igual, a no ser que register_globals esté ON, debes recuperar las variables de acuerdo al método del formulario (ya sea $_GET o $_POST).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 23/04/2009, 11:23
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: No me graba el año desde un option en mysql

en el select option tengo esto en la salida:

Código PHP:
Select One<br><select><option name="anio" value="1999">1999<option name="anio" value="2000">2000  <p align="center"
no, lo de register_globals no creo, estoy probando en local, con appserv, el value esta! no?

ademas todos los otros campos andan y alguna vez este me funciono jajaja no se que toque...ni que cambie...
  #10 (permalink)  
Antiguo 23/04/2009, 11:25
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No me graba el año desde un option en mysql

No estás asignando un name a tu select, los options no necesitan llevar name, no estás cerrando el tag <select>... Corrige esos errores y después nos comentas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 23/04/2009, 11:30
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: No me graba el año desde un option en mysql

Bien, lo he corregido pero sigue sin grabarme...me ha quedado asi el html

Código PHP:
Select One<br><select name="anio"><option value="1999">1999<option value="2000">2000</select
no encuentro donde esta el error...
  #12 (permalink)  
Antiguo 23/04/2009, 11:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No me graba el año desde un option en mysql

¿Eso lo tienes dentro del formulario? ¿Cómo intentas recuperar el dato?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 23/04/2009, 11:36
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: No me graba el año desde un option en mysql

Esta dentro de un formulario:

Código PHP:
<? 

echo 'Select One<br>';

//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select * From year";
$result=mysql_query($sSQL);

echo 
'<select name="anio">';

//Mostramos los registros en forma de menú desplegable
while ($row=mysql_fetch_array($result))
{echo 
'<option value="'.$row["anio"].'">'.$row["anio"];}
mysql_free_result($result); echo '</select></option>';?>
  <p align="center"><span class="style3">
  <input name="boton" type="submit" class="spip_bouton" id="boton" value="Submit">
  </span><span class="style1">
  </span></p>

</form>
Para recuperar el dato hago:

Código PHP:
$anio $_GET['anio']; 
  #14 (permalink)  
Antiguo 23/04/2009, 11:49
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: No me graba el año desde un option en mysql

Q tal mira y analiza la forma como lo hago yo espero te sirva

$cargo=mysql_query("select cod_iden,nombre_cargo from cargo");
if(mysql_num_rows($cargo)>0)

{

echo "<form action=\"borrar_cargo.php\" method=\"post\">";
echo "<select name=\"eliminacion\">";
while($row2=mysql_fetch_array($cargo))
{

echo "<td><option value=\"{$row2['cod_iden']}\">".$row2['nombre_cargo']."</option></td>";
echo "<option value=\"$row[nombre]\">$row[nombre] </option>";

}
echo "</select>";
echo "<input type=\"submit\" name=\"eliminar_cargo\" value=\"Eliminar cargo\">";
echo "</form>";


borrar_cargo.php

$valor=$_REQUEST['eliminacion'];

de esa manera se que valor escojieron en el select
  #15 (permalink)  
Antiguo 23/04/2009, 11:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No me graba el año desde un option en mysql

¿Has comprobado que el método del formulario sea realmente GET y no POST? ¿Ya intentaste imprimir $anio después de enviar el formulario para ver si recibe el valor?

P.S.: Ese </option> después de </select> está sobrando. Cuidado para no malformar tu HTML.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #16 (permalink)  
Antiguo 23/04/2009, 11:58
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: No me graba el año desde un option en mysql

ya estaaaaaaaaaaaaa....lo grabo!!!, con el REQUEST como decia acoevil millon de gracias!!!

me ha quedado asi:

Código PHP:
echo "<select name=\"anio\">";

//Mostramos los registros en forma de menú desplegable
while ($row=mysql_fetch_array($result))
{echo 
"<option value=\"$row[anio]\">$row[anio] </option>";}
mysql_free_result($result); echo '</select>';?> 
y lo recibo

Código PHP:
$anio=$_REQUEST['anio']; 
Gracias a ambos!!!
  #17 (permalink)  
Antiguo 23/04/2009, 12:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: No me graba el año desde un option en mysql

Si con $_REQUEST funciona lo más probable es que el método de tu formulario es POST y no GET (también puedes recuperarlo con $_POST en ese caso).

Saludos y me alegra que lo hayas solucionado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 00:22.