Foros del Web » Programando para Internet » PHP »

Como Almacenar la fecha desde un TEXT

Estas en el tema de Como Almacenar la fecha desde un TEXT en el foro de PHP en Foros del Web. Saludos Amigos: Estoy construyendo un pequeño sistema que lleva el control de unos estudiantes la tecnolocia que estoy utilizando es la siguiente MySQL + Apache ...
  #1 (permalink)  
Antiguo 12/12/2006, 22:46
Avatar de El_Aprendiz  
Fecha de Ingreso: febrero-2005
Mensajes: 152
Antigüedad: 19 años, 2 meses
Puntos: 0
Como Almacenar la fecha desde un TEXT

Saludos Amigos:

Estoy construyendo un pequeño sistema que lleva el control de unos estudiantes la tecnolocia que estoy utilizando es la siguiente MySQL + Apache + PHP, y tengo un formulario, lo que no se hacer es ALMACENAR LA FECHA EN LA TABLA en un campo de tipo DATATIME, he utilizado un codigo de javascript encontrado en este foro es el siguiente:
Código PHP:
<html>
 <
head>
  <
script language="JavaScript">

   var 
aMeses = new Array("Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre")

   function 
padNmb(nStrnLensChr){
    var 
sRes String(nStr);
    for (var 
0nLen String(nStr).lengthi++)
     
sRes sChr sRes;
    return 
sRes;
   }

   function 
makeDateFormat(nDaynMonthnYear){
    var 
sRes;
    
sRes padNmb(nDay2"0") + "/" padNmb(nMonth2"0") + "/" padNmb(nYear4"0");
    return 
sRes;
   }
   
   function 
addOpt(oCntrliPossTxtsVal){
    var 
selOpcion = new Option(sTxtsVal);
    
oCntrl.options.add(selOpcioniPos);
   }

   function 
lastDayOfMonth(nMonthnYear){
    var 
aMonth = new Array(312831303130313130313031);
    if ((
nMonth == 2) && (nYear == 0))
     return 
29;
    else
     return 
aMonth[nMonth 1];
   }

   function 
cambia(nCambiado){
    var 
nAno;
    var 
nMes;
    
with (document.frm){
     
nAno parseInt(ano.options[ano.selectedIndex].value);
     switch (
nCambiado){
      case 
0:
       
llenaMes(mesnAno);
       break;
      case 
1:
       
nMes parseInt(mes.options[mes.selectedIndex].value);
       
llenaDia(dianAnonMes)
       break;
      case 
2:
       
nMes parseInt(mes.options[mes.selectedIndex].value);
       
nDia parseInt(dia.options[dia.selectedIndex].value);
       
res.value makeDateFormat(nDianMes 1nAno);
       break;
     }
    }
   }

   function 
llenaAno(oAno){
    var 
hoy = new Date();
    var 
ini 1960;
    
addOpt(oAno0"""");
    for (var 
ini<= hoy.getYear(); i++)
     
addOpt(oAnoini 1String(i), String(i));
   }

   function 
llenaMes(oMesnAno){
    var 
hoy = new Date();
    var 
nFin 11;
    while (
oMes.length 0oMes.remove(0);
    if (
nAno == hoy.getYear()) nFin hoy.getMonth();
    
addOpt(oMes0"""");
    for (var 
0<= nFini++)
     
addOpt(oMes1aMeses[i], String(i));
   }

   function 
llenaDia(oDianAnonMes){
    var 
hoy = new Date();
    var 
nFin lastDayOfMonth(nMes 1nAno);
    while (
oDia.length 0oDia.remove(0);
    if (
nAno == hoy.getYear() && nMes == hoy.getMonth()) nFin hoy.getDate();
    
addOpt(oDia0"""");
    for (var 
1<= nFini++)
     
addOpt(oDia1String(i), String(i));
   }

  
</script>
 </head>
 <body onload=" llenaAno(document.frm.ano)">
  <form name="frm">
   <table width="245" border="0">
    <tr>
     <td width="47" align="right">
      Año: 
     </td>
     <td width="188">
      <select name="ano" onchange="cambia(0)" style="width: 80">
      </select>
     </td>
    </tr>
    <tr>
     <td align="right">
      Mes: 
     </td>
     <td>
      <select name="mes" onchange="cambia(1)" style="width: 80">
      </select>
     </td>
    </tr>
    <tr>
     <td align="right">
      Día: 
     </td>
     <td>
      <select name="dia" onchange="cambia(2)" style="width: 80">
      </select>
     </td>
    </tr>
    <tr>
     <td align="right">
      Fecha:
     </td>
     <td>
      <input name="res" type="text" disabled size="10">
     </td>
    </tr>
   </table>
  </form>
 </body>
</html> 
Si lo utilizan podran ver que por medio de los combos seleccionamos la fecha y al final nos queda un resultado en el tex es ese prisisamente lo que quiero almacenar en la tabla, como lo hago?
Gracias por su tiempo a todos.. Atentamente EL_Aprendiz
__________________
La verdadera grandeza no está en no caer, si no en levantarse cada vez que caemos.
  #2 (permalink)  
Antiguo 13/12/2006, 01:25
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: Como Almacenar la fecha desde un TEXT

Hola!
Pues lo q te falta en el codigo es toda la parte de php.
lo q tienes q hacer es mandar los datos del form por post hacia otra pagina(o sobre la misma), y en esta pagina tener el codigo para insertar los datos a tu BD!

1ero tendrias q modificar la linia del form y dejarla asi:
Código:
<form name="frm" method="post" action="insertardatos.php">
No ser sobre q BD trabajas pero te pondre el ejemplo para mysql.
En tu pagina de insertardatos.php.

Código PHP:
//recibimos tus datos mandados del Formulario.
//en tu caso la fecha
$fecha=$_POST['res'];

$sql_host="";  // Host, nombre del servidor o IP del servidor Mysql.
$sql_usuario="";  // Usuario de Mysql
$sql_pass="";    // contraseña de Mysql

$sql_db="";  // Base de datos que se usará.

# Connexión
$p_hook mysql_connect($sql_host,$sql_usuario,$sql_pass) or die ("Error de connexión: host/user/pass incorrecto");
$p_base mysql_select_db($sql_db,$p_hook) or die ("Error de connexión: base de datos incorrecta");

//Sentencia insert para guardar la fecha en tu BD
$str_ins="INSERT INTO tutabla (fecha) values ($fecha)";
//ejecutamos la consulta
mysql_query($str_ins)or die("Error en consulta de inserción: ".mysql_error()) 
y si todo ha salido bien tendrias q tener la fecha en tu BD

=mente te dejo un link para q veas mas ejemplos de formularios...

http://es.tldp.org/Manuales-LuCAS/ma...ormularios.htm

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 13/12/2006, 23:59
Avatar de El_Aprendiz  
Fecha de Ingreso: febrero-2005
Mensajes: 152
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: Como Almacenar la fecha desde un TEXT

Gracias por seguir de cerca mi problema:
Para empezar hice todo lo que me aconsejastes en primer caso en la linea dodente esta (fecha) verdad que ahi va el nombre del campo donde se almacenara la fecha en mi caso se llama (fec_nac)
Código PHP:
$str_ins="INSERT INTO estudiante (fec_nac) values ($fecha)"
bueno el erro que me da es
Cita:
Error en consulta de inserción: Column count doesn't match value count at row 1
Tengo entendido que es por que no coinciden los numeros de valores en la tabla, pero no se como solucionarlos el timpo de campo al cual quiero almacenar es DATETIME (estoy usando mysql 4 y PHP5) luego lo cambia a solamente a DATE pero igual da el mismo error.
el codigo del formulario lo tengo asi:
Código PHP:
<html>
 <
head>
  <
script language="JavaScript">
   function 
validar(e
    { 
        
tecla = (document.all) ? e.keyCode e.which
        if (
tecla==8) return true;  
            
patron = /d/; 
            
te String.fromCharCode(tecla); 
            return 
patron.test(te);  
    } 
   var 
aMeses = new Array("Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre")

   function 
padNmb(nStrnLensChr){
    var 
sRes String(nStr);
    for (var 
0nLen String(nStr).lengthi++)
     
sRes sChr sRes;
    return 
sRes;
   }

   function 
makeDateFormat(nDaynMonthnYear){
    var 
sRes;
    
sRes padNmb(nDay2"0") + "/" padNmb(nMonth2"0") + "/" padNmb(nYear4"0");
    return 
sRes;
   }
   
   function 
addOpt(oCntrliPossTxtsVal){
    var 
selOpcion = new Option(sTxtsVal);
    
oCntrl.options.add(selOpcioniPos);
   }

   function 
lastDayOfMonth(nMonthnYear){
    var 
aMonth = new Array(312831303130313130313031);
    if ((
nMonth == 2) && (nYear == 0))
     return 
29;
    else
     return 
aMonth[nMonth 1];
   }

   function 
cambia(nCambiado){
    var 
nAno;
    var 
nMes;
    
with (document.frm){
     
nAno parseInt(ano.options[ano.selectedIndex].value);
     switch (
nCambiado){
      case 
0:
       
llenaMes(mesnAno);
       break;
      case 
1:
       
nMes parseInt(mes.options[mes.selectedIndex].value);
       
llenaDia(dianAnonMes)
       break;
      case 
2:
       
nMes parseInt(mes.options[mes.selectedIndex].value);
       
nDia parseInt(dia.options[dia.selectedIndex].value);
       
res.value makeDateFormat(nDianMes 1nAno);
       break;
     }
    }
   }

   function 
llenaAno(oAno){
    var 
hoy = new Date();
    var 
ini 1960;
    
addOpt(oAno0"""");
    for (var 
ini<= hoy.getYear(); i++)
     
addOpt(oAnoini 1String(i), String(i));
   }

   function 
llenaMes(oMesnAno){
    var 
hoy = new Date();
    var 
nFin 11;
    while (
oMes.length 0oMes.remove(0);
    if (
nAno == hoy.getYear()) nFin hoy.getMonth();
    
addOpt(oMes0"""");
    for (var 
0<= nFini++)
     
addOpt(oMes1aMeses[i], String(i));
   }

   function 
llenaDia(oDianAnonMes){
    var 
hoy = new Date();
    var 
nFin lastDayOfMonth(nMes 1nAno);
    while (
oDia.length 0oDia.remove(0);
    if (
nAno == hoy.getYear() && nMes == hoy.getMonth()) nFin hoy.getDate();
    
addOpt(oDia0"""");
    for (var 
1<= nFini++)
     
addOpt(oDia1String(i), String(i));
   }

  
</script>
  <style type="text/css">
<!--
.Estilo5 {    font-size: 12px;
    font-weight: bold;
}
-->
  </style>
 </head>
 <body onload=" llenaAno(document.frm.ano)">
 <blockquote>
   <blockquote>
     <form name="frm" method="post" action="insertardatos.php">
       <p align="center"><strong>Ingrese un Estudiante</strong></p>
       <div align="center">
         <table width="791" border="0">
          <tr>
            <td colspan="3" align="right"><div align="left"><span class="Estilo5">Codigo: </span></div></td>
            <td colspan="2"><span class="Estilo5">ES731-</span>
            <input name="codigo" type="text" id="codigo6" size="8" maxlength="4" onKeyPress="return validar(event)"></td>
            <td>&nbsp;</td>
            <td width="15" rowspan="13" bgcolor="#FFFFFF"><a href="../../Documents%20and%20Settings/JELPC01/Mis%20documentos/Mis%20imágenes/2006-11%20(Nov)/Explorar0010.jpg"></a></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3" align="right"><div align="left"><span class="Estilo5">Primer Nombre:</span></div></td>
            <td colspan="3"><input name="nom1" type="TEXT" id="nom14" size="30" maxlength="30"></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3" align="right"><div align="left"><span class="Estilo5">Segundo Nombre:</span></div></td>
            <td colspan="3"><input name="nom2" type="text" id="nom24" size="30" maxlength="30"></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3" align="right"><div align="left"><span class="Estilo5">Primer Apellido:</span></div></td>
            <td colspan="3"><input name="ape1" type="text" id="ape14" size="30" maxlength="30"></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3" align="right"><div align="left"><span class="Estilo5">Segundo Apellido:</span></div></td>
            <td colspan="3"><input name="ape2" type="text" id="ape24" size="30" maxlength="30"></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3" align="right"><div align="left"><span class="Estilo5">Sexo:</span></div></td>
            <td colspan="3"><select name="sexo" id="select6">
              <option>Masculino</option>
              <option>Femenino</option>
                                                                        </select></td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3" align="right"><div align="left"></div></td>
            <td colspan="3">&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="3" align="right"><div align="left"><span class="Estilo5">Nacimiento: </span></div></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
           <td width="57" align="right"><div align="left" class="Estilo5">A&ntilde;o:</div></td>
           <td width="80"><select name="ano" onChange="cambia(0)" style="width: 80">
           </select></td>
           <td width="30"><div align="left" class="Estilo5">Mes: </div></td>
           <td width="92"><select name="mes" onChange="cambia(1)" style="width: 80">
           </select></td>
           <td width="27" class="Estilo5">D&iacute;a: </td>
           <td width="60"><select name="dia" onChange="cambia(2)" style="width: 60">
           </select></td>
           <td width="396">&nbsp;     </td>
          </tr>
          <tr>
           <td align="right" class="Estilo5"><div align="left">Fecha:
            </div></td>
           <td><input name="res" type="text" disabled size="10"></td>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
           <td>&nbsp;
      </td>
          </tr>
          <tr>
           <td align="right">&nbsp;
            </td>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
           <td>&nbsp;</td>
           <td>&nbsp;
           </td>
          </tr>
          <tr>
            <td colspan="2" align="right"><div align="left"><span class="Estilo5">Direcci&oacute;n:</span></div></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
           <td colspan="6" align="right"><div align="left">
             <input name="direc" type="text" id="direc6" size="60" maxlength="90">
            </div></td>
           <td>&nbsp;
           </td>
          </tr>
         </table> 
       </div>
       
       <div align="center">
         <input name="SUBMIT" type="SUBMIT" value="Insertar">
         </div>
     </form>
     <div align="center">     </div>
   </blockquote>
 </blockquote>
 </body>
</html> 
y el scrip es el siguiente
Código PHP:
<?
//recibimos tus datos mandados del Formulario. 
//en tu caso la fecha 
$fecha=$_POST['res']; 

$sql_host="localhost";  // Host, nombre del servidor o IP del servidor Mysql. 
$sql_usuario="root";  // Usuario de Mysql 
$sql_pass="colgante";    // contraseña de Mysql 

$sql_db="estudiantes";  // Base de datos que se usará. 

# Connexión 
$p_hook mysql_connect($sql_host,$sql_usuario,$sql_pass) or die ("Error de connexión: host/user/pass incorrecto"); 
$p_base mysql_select_db($sql_db,$p_hook) or die ("Error de connexión: base de datos incorrecta"); 

//Sentencia insert para guardar la fecha en tu BD 
$str_ins="INSERT INTO estudiante (fec_nac) values ($fecha)"
//ejecutamos la consulta 
mysql_query($str_ins)or die("Error en consulta de inserción: ".mysql_error())  
?>
Claro que solo se muestra que intento almacenar la fecha en este codigo pero los otras datos se como almacenarlos por esa razon no estan en dicho codigo.
Gracias por su tiempo Atentamente El_Aprendiz
__________________
La verdadera grandeza no está en no caer, si no en levantarse cada vez que caemos.
  #4 (permalink)  
Antiguo 14/12/2006, 00:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Como Almacenar la fecha desde un TEXT

Prueba asi:
Código PHP:
$str_ins="INSERT INTO `estudiante` (`fec_nac`) VALUES ('$fecha')"
  #5 (permalink)  
Antiguo 14/12/2006, 19:28
Avatar de El_Aprendiz  
Fecha de Ingreso: febrero-2005
Mensajes: 152
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: Como Almacenar la fecha desde un TEXT

Saludos a todos/as:

1- Si lo pongo de esta forma lo que hace es insertatme la fecha en cero este decir en la base de datos me aparece asi 0000-00-00 00:00:00 y no la fecha que escojo en los combos.
Código PHP:
$str_ins="INSERT INTO `estudiante` (`fec_nac`) VALUES ('$fecha')"
Gracias por su tiempo no se en que podra estar el erro

Atentamente El_Aprendiz
__________________
La verdadera grandeza no está en no caer, si no en levantarse cada vez que caemos.
  #6 (permalink)  
Antiguo 15/12/2006, 02:24
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: Como Almacenar la fecha desde un TEXT

Hola
usa esta funcion para cambiar el formato de tu fecha para q mysql lo inserte bien
http://www.desarrolloweb.com/articulos/1280.php

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 20:03.