Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/09/2015, 15:23
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Error insertando valores de una fecha desde formulario.

Cita:
Por cierto si con este mismo ejemplo que tengo en vez de tener tres parametros (día, mes y año) quiero tener dos y solo usar dia y mes ¿tambien tengo que dejar el campo de la tabla mysql como date o podría pasar a int o incluso varchar?
Yo lo dejaría como date ya que mysql puede manejarlos perfectamente asi.
Viendo tu ejemplo te comento lo que implemento yo para sistemas de feriados:
En argentina tenemos dos tipos de feriados: inamovibles y movibles, los inamovibles ocurren todos los años en un dia fijo, por ejemplo del 9 de julio o el 1 de mayo, mientras que los movibles pueden cambiar de fecha cada año segun cuando caen, ademas, ultimamente aparecio un tercer tipo que denomine "esporadicos" que se agregan solo para un año en particular pero que no se repite los proximos años, o bien lo hace pero en otra fecha.

Asi que en la base de datos de la tabla feriados tengo un campo de tipo "date" donde guardo en el año un valor por defecto ("2000" en mi caso) para indicar que se trata de un feriado inamovible y ademas guardo feriados movibles y esporadicos con la fecha del año (Ej: 2015) por lo que a la hora de mostrar los feriados, muestro todos los que tengan año 2000 o año actual ordenado por mes y dia, la bd lo maneja muy bien a eso de una forma simple.

Esto:
Código PHP:
Ver original
  1. $ano_santo = "0000";
  2.     $fecha_s = $ano_nacimiento."-".$mes_santo."-".$dia_santo;

Seria asi:
Código PHP:
Ver original
  1. $ano_santo = "0000";
  2.     $fecha_s = $ano_santo ."-".$mes_santo."-".$dia_santo;

Esto:
Código PHP:
Ver original
  1. <?php
  2. //Aquí si la reconoce fuera del select option al menos diciendo que no existe fecha
  3.     if(isset($_POST['dia_nacimiento'])){
  4.         echo "Existe día de nacimiento".$_POST['dia_nacimiento'];
  5.     }
  6.     else{ echo "No existe";}    
  7.     ?>
  8.    
  9.     <select id="dia_nacimiento" name="dia_nacimiento">
  10.     <?php
  11. //A partir de aquí ni siquiera muestra el aviso de no existe.
  12.     if(isset($_POST['dia_nacimiento'])){
  13.         echo "Existe día de nacimiento en select".$_POST['dia_nacimiento'];
  14.     }
  15.     else{ echo "No existe en select";}
Los tags select no admiten contenido dentro que no sea un tag option, para mostrar yo haria lo siguiente:
Código PHP:
Ver original
  1. <select id="dia_nacimiento" name="dia_nacimiento">    
  2.     <option value="">Día: </option>
  3.     <?php
  4.         $selected = (empty($_POST['dia_nacimiento']) ? 0 : $_POST["dia_nacimiento"]);
  5.         for ($i=1; $i<32; $i++)
  6.             echo "<option value=\"$i\" ".($i == $selected ? "selected" : "").">$i</option>";
  7.     ?>
  8. </select>
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios