Foros del Web » Programando para Internet » PHP »

pasar una fecha desde un formulario y almacenarla en la base de datos

Estas en el tema de pasar una fecha desde un formulario y almacenarla en la base de datos en el foro de PHP en Foros del Web. hola de nuevo ya he hecho gran parte de mi codigo en php pero la verdad no tengo ni idea de como pasar la fecha ...
  #1 (permalink)  
Antiguo 11/11/2010, 23:29
 
Fecha de Ingreso: noviembre-2010
Mensajes: 105
Antigüedad: 13 años, 5 meses
Puntos: 0
Exclamación pasar una fecha desde un formulario y almacenarla en la base de datos

hola de nuevo ya he hecho gran parte de mi codigo en php pero la verdad no tengo ni idea de como pasar la fecha desde mi formulario a la base de datos, uso dreamweaver y no encuentro ninguna opcion por ahi, aqui pongo mi codigo
ayuda¡¡
codigo del archivo del formulario
Código PHP:
<body>
<table width="57%" border="1">
  <tr>
    <th scope="col"><form id="form2" name="form2" method="post" action="tbasig.php">
      <label>administrador<?php
     
include_once "bd/base_anotador.php";
     include_once 
'bd/table.php';
 
 
$tbl = new table('administrador'$base);
 
$tbl->Select('id_admin,nom_admin','','nom_admin');
 echo 
$tbl->GetCombo('id_admin');
  
?></label><br />
      <br />
      codigo de producto
         <?php
     
include_once "bd/base_anotador.php";
     include_once 
'bd/table.php';
 
 
$tbl = new table('productos'$base);
 
$tbl->Select('cod_producto,nom_producto','','nom_producto');
 echo 
$tbl->GetCombo('cod_producto');
  
?>
        </label>
      <p>
        <label> cliente <?php
     
include_once "bd/base_anotador.php";
     include_once 
'bd/table.php';
 
 
$tbl = new table('cliente'$base);
 
$tbl->Select('cod_cliente,nombre','','nombre');
 echo 
$tbl->GetCombo('cod_cliente');
  
?>
          </label>
      </p>
      <p>
        <label>asignar licencia </label><?php
     
include_once "bd/base_anotador.php";
     include_once 
'bd/table.php';
 
 
$tbl = new table('licencia'$base);
 
$tbl->Select('id_licencia,lic_estado','','lic_estado');
 echo 
$tbl->GetCombo('id_licencia');
  
?></label>
      </p>
      <p>fecha de inicio:  </p>
      <div>
        <label>a&ntilde;o
        <input name="aa" type="text" id="aa" />
mes </label>
        <label></label>
        <input name="mm" type="text" id="mm" />
dia
<input type="text" name="textfield2" />
       </div>
      <p>fecha de vencimiento:</p>
      <div>
        <label>a&ntilde;o
          <input name="aa2" type="text" id="aa2" />
          mes </label>
        <label></label>
        <input name="mm2" type="text" id="mm2" />
        dia
  <input type="text" name="textfield22" />
      </div>
      <p>&nbsp; </p>
      <p>
        <label></label>
      </p>
      <p>
        <label>
        <input type="submit" name="Submit" value="Asignar" />
        </label>
      </p>
    </form></th>
  </tr>
</table>
</body>
</html>

aqui esta donde se reciben los datos todos entraban bien hasta q me pidieron ponerle fecha

recibo.php
Código PHP:
<?php 
 
include_once "bd/base_anotador.php";
 include_once 
'bd/table.php';
$base->debug_on(true);
$tbl= new table('asignarlc',$base);
function 
asignar_licencia()
{
global 
$tbl;

$tbl->id_licencia=$_POST['id_licencia'];
$tbl->id_admin=$_POST['id_admin'];
$tbl->cod_producto=$_POST['cod_producto'];
$tbl->cod_cliente=$_POST['cod_cliente'];
$tbl->fecha_inicio=$_POST['aa','mm','dd'];
$tbl->vence=$_POST['aa2','mm2','dd2'];
$tbl->save();
}

 function 
buscar($id)
 {
     global 
$tbl;
     
$tbl->Find($id);
     
$tbl->ShowRecord();
 }
 

if(
asignar_licencia()){

echo 
"la licencia se registro con exito";
}else {echo
"licencia registrada";

}

?>

<html><body>
<p><a href="administrador.php">ADMINISTRADOR</a></p>
<p><a href="asig.php">VOLVER A ASIGNAR  </a></p>
</body>
</html>
  #2 (permalink)  
Antiguo 11/11/2010, 23:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

lo único que puedo decirte es que debes leer el manual...

Código PHP:
// MAL
$tbl->fecha_inicio=$_POST['aa','mm','dd'];

// BIEN
$tbl->fecha_inicio=$_POST['aa'].'/'.$_POST['mm'].'/'.$_POST['dd']; 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/11/2010, 23:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 105
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

con ese codigo la insercion se logra pero llega a la bd como 0000-00-00 entonces en realidad no se inserta...tienes alguna otra idea???
  #4 (permalink)  
Antiguo 11/11/2010, 23:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

bueno, tan solo lo decía para que notaras el error...

en lo que te debes fijar ahora es en el formato, que como dices es yyyy-mm-dd y si lo piensas el formato que emplee es ????/mm/dd y claro, desconozco si la fecha esta bien formada, etc...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/11/2010, 23:51
 
Fecha de Ingreso: noviembre-2010
Mensajes: 105
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

mmm ps en realidad no se a q te refieres...creo q las fechas estan bien formadas asi q ....estoy en las mismas...jaja...si me puedes regalar otro aport o me explicas mejor t lo agradecere..
  #6 (permalink)  
Antiguo 11/11/2010, 23:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

usa un poco tu imaginación...
Código PHP:
$tbl->fecha_inicio=$_POST['aa'].'/'.$_POST['mm'].'/'.$_POST['dd']; 
y dices que en la BD sale como 0000-00-00 ¿notas las diferencias de formatos?

es obligatorio que ingreses dicho formato, ej. 2010-11-11 ¿si lo entiendes ahora?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 11/11/2010, 23:54
 
Fecha de Ingreso: noviembre-2010
Mensajes: 105
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

jajaja 'aa' tiene el año asi 2010 asiq creo q eso no es...
  #8 (permalink)  
Antiguo 11/11/2010, 23:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

Cita:
Iniciado por daneco1720 Ver Mensaje
jajaja 'aa' tiene el año asi 2010 asiq creo q eso no es...
¿de verdad aún no notas alguna otra diferencia?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 12/11/2010, 00:01
 
Fecha de Ingreso: noviembre-2010
Mensajes: 105
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

tambien el - - - pero ya lo intente y dio el mismmo resultado..asi q de nuevo..eso no es..
  #10 (permalink)  
Antiguo 12/11/2010, 00:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

Cita:
Iniciado por daneco1720 Ver Mensaje
tambien el - - - pero ya lo intente y dio el mismmo resultado..asi q de nuevo..eso no es..
pues entonces no creo que el problema venga del formato, imagino que la clase table que empleas tiene algo o mucho que ver con que conserve y respete dicho formato...

¿podrías mostrar la clase completa?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 12/11/2010, 00:14
 
Fecha de Ingreso: noviembre-2010
Mensajes: 105
Antigüedad: 13 años, 5 meses
Puntos: 0
Información Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

ok pero no creo q eso sea ahi va...
Código PHP:
 <?php

include_once 'base.php';

class 
table
{
    public 
$table_name;

    private 
$base=null;
    private 
$campos = array();
    public 
$rs=null;

    
//********************************************************
    
public function __construct($table=''$base=null)
    {
        
$this->table_name $table;
        
$this->base = &$base;
    }
    
//********************************************************
    
public function __set($name$value)
    {
        
$this->campos[$name] = $value;
    }
    
//*********************************************************
    
public function __get($name)
    { 
    
$ret null;
    
    if (
array_key_exists($name$this->campos))
     
$ret $this->campos[$name];
    
    if (
$name == 'RecordCount')
     {if (
$this->rs)
        
$ret $this->rs->RecordCount();
       else
        
$ret = -1;  
     }      

    if (
$name == 'Registro')
     
$ret $this->campos
    return 
$ret;
    }
    
//********************************************************
    
private function GetFields()  // doesn´t work with empty table
    
{
        
$sql "select * from {$this->table_name}";
        
$rs $this->base->dosql_limit($sql1);
        return 
$rs->fields;
    }
    
//********************************************************
    
public function AutoLoadFields()
    {
        
$this->campos $this->GetFields();
    }
    
//********************************************************
    
function Save()
    {
        
$this->base->Insert($this->table_name$this->campos);
    }
    
    
//********************************************************
    
function AssignFields($valores)  // Asigna un arreglo de campos
    
{
        
$campos $this->GetFields();
        foreach(
$valores as $key => $val)
        {
            if (
array_key_exists($key$campos))
             
$registro[$key]=$val;
        }
        
// var_dump($registro);
        
$this->campos $registro;
    }    
    
//********************************************************
    
function SaveArray($valores)  // recibe arregelo de campos y los almacena en la tabla
    
{
         
$this->AssignFields($valores);
        
$this->Save();    
    }
    
//********************************************************
    
function Update($where=false)
    {
        
$this->base->Update($this->table_name$this->campos,'UPDATE'$where);
    }
    
//********************************************************
    
function InsUpd($key=''$autoquote=false)
    {
        if (
$key == ''$key $campos[0];  // primer campo id por defecto
        
$this->base->InsUpd($this->table_name$this->campos$key$autoquote);
    }
    
//********************************************************
    
function Select($campos=''$where=''$orderfield='')
    {
        if (
$where != ''$where " where $where";
        if (
$orderfield != ''$orderfield " order by $orderfield";
        
$sql "select $campos from {$this->table_name} $where $orderfield";
        
$this->rs $this->base->dosql($sql);
        if (
$this->rs)
         
$this->campos $this->rs->fields;
        return(
$this->rs); 
    }    
    
//********************************************************
    
function Find($valor$campo_where=''// por defecto busca por la llave primaria
    
{
        if (
$campo_where == ''$campo_where $this->base->GetPK($this->table_name);
          return 
$this->Select('*'"$campo_where = '$valor' ");
    }
    
//********************************************************
    
function Delete($valor$campo_where=''// por defecto borra por la llave primaria
    
{   
        
$res false;
        if (
$this->Find($valor$campo_where))
        {
$res true;
          if (
$campo_where == ''$campo_where $this->base->GetPK($this->table_name);
          while(!
$this->rs->EOF)
           {
             
$val_campo $this->rs->fields[$campo_where];
             
$sql "delete from {$this->table_name} where $campo_where = $val_campo";
             
$this->base->dosql($sql);
               
$this->rs->MoveNext();
           }
        } 
        return(
$res);          
    }
    
//********************************************************
    
function GetCombo($name$id=''$valor=''$defa='')
    {
$cam $this->campos;    
     
reset($cam); // echo '-->'.key($cam);
     
if ($id == ''
      {
$id key($cam); next($cam);}
     if (
$valor == ''$valor key($cam);
     
// var_dump($id); var_dump($valor);
        
while(!$this->rs->EOF)
        { 
$key $this->rs->fields[$id];
          
$val $this->rs->fields[$valor];
          
$opt .= "<option value = \"$key\">$val</option>\n";
          
$this->rs->MoveNext();
        }
      
$res "<select name=\"$name\">\n$opt\n</select>";
      return(
$res);
    }
    
//********************************************************
    
function ShowRecord()
    {    
        echo 
"<pre>";    
        
var_dump($this->campos);
        echo 
"</pre>";    
    }
    
//********************************************************    
    
function GetRows($field='')
    {
$res '';
     if ((
$this->rs == null) || (!is_array($this->campos))) return('');
     if (
$field == ''$field key(($this->campos));
     while(!
$this->rs->EOF)
        { 
$res .= $this->rs->fields[$field]."<br/>\n";          
          
$this->rs->MoveNext();
        }
     return(
$res);      
    }
    
//********************************************************
    
function Error()
    {
     return(
$this->base->ErrorNo() != 0); 
    }
    
//********************************************************
        
}
?>

y base anotador simplemente es la conexion a la BD
  #12 (permalink)  
Antiguo 12/11/2010, 00:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

ahora solo falta el objeto base que empleas, pues yo si creo que por ahí debe estar el problema, ya que no se ve aquí el método Insert()...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 12/11/2010, 00:23
 
Fecha de Ingreso: noviembre-2010
Mensajes: 105
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

mmm no creo...el objeto base solament configura la base le pone


$base = new base();
$base->setup(Config::$host, Config::$user, Config::$pass, Config::$base);
$base->record_style('fields');

solo configura la conexion t digo eso no es...no se es como hacer para insertar la fecha la conexion esta bn
  #14 (permalink)  
Antiguo 12/11/2010, 00:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: pasar una fecha desde un formulario y almacenarla en la base de datos

a esto es a lo que me refiero...
Código PHP:
    function Save()
    {
        
$this->base->Insert($this->table_name$this->campos);
    } 

¿de donde sale dicho método Insert()?

seguro ahí debe venir la forma en que la consulta de SQL es construida, y quizá ahí esté la razón de que no conserve bien los datos....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: pasar, fechas, formulario
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 18:12.