Ver Mensaje Individual
  #5 (permalink)  
Antiguo 23/09/2011, 09:31
Avatar de vgonga1986
vgonga1986
 
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Extraer parte de los datos de una consulta

Buenas,

Vamos a ver, aclara primero una cosa que creo que es esencial. Quieres tener un campo varchar o un campo date? Eso es lo primero que tienes que solucionar, porque soluciones hay miles, pero soluciones óptimas sólo una. Si MySQL te da un tipo de campo Date no es porque se aburrieran y no tuvieran otra cosa que hacer, es porque luego las cosas están optimizadas para ese tipo de campos. Guardar una fecha en un varchar es ir en contra de MySQL, porque si todos hacemos eso, para qué existe Date?

Lo mismo pasa con tu solución, sí, obviamente si sacas los cuatro primeros caracteres vas a tener el año, pero es eso orientado a Date? No, los campos date tienen sus propias funciones, hay que aprender a utilizarlas y el link que te han pasado es perfecto para ello.

En cuanto a lo que dices del formulario, te explico más detalladamente. Cuando trabajas con PHP tienes básicamente tres formas de pasar los datos de una página a otra:
- $_POST: si tienes un formulario en una página, en la página que trata dicho formulario puedes recibir los campos en esta variable, de forma que pasas la información que introdujo el usuario a la página que la trata.
- $_GET: tanto con formulario o sin él, siempre puedes pasar los valores que necesites a través de esta variable, dichos valores se insertarán en la URL de la página de la forma pagina.php?parametro=valor. Luego los tratas en la página que los necesitas.
- $_SESSION: es una estructura que te da PHP para almacenar variables dentro de una misma sesión de usuario. Es decir, para cada usuario que esté conectado a tu web en un momento dado tienes una variable $_SESSION que es, igual que las anteriores, un array donde el índice es el nombre del parámetro y el contenido el valor del mismo. Con esta estrucutra puedes pasar parámetros de unas páginas a otras de forma transparente al usuario.

Cómo aplicas esto a tu caso? Sencillo, tú tienes dos páginas, un formulario y un script que lo trata (en tu caso hace un insert de los datos) y la evolución de tu aplicación es la siguiente:
1) El usuario rellena el formulario y lo envía.
2) El script usa los datos para el insert.
3) Se vuelve al formulario para rellenarlo de nuevo.

Si en el punto 3) quieres que el campo año tenga el mismo valor que puso el usuario en el punto 1) tendrás que pasarlo del script al formulario con alguno de los métodos anteriores. Como el script no es un formulario tienes que descartar el $_POST, luego puedes pasarlo con la URL por $_GET o a través de una sesión con $_SESSION. No te recomiendo el primero, ya que irá directamente en la URL, así que te queda el segundo.

Cómo hacerlo? Tienes tanto en este foro como en mil sitios más (mira en google) ejemplos de cómo utilizar $_SESSION.

Un saludo y espero que te sirva.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?