Foros del Web » Programando para Internet » PHP »

Ayuda con un simple insert de una fecha, mysql

Estas en el tema de Ayuda con un simple insert de una fecha, mysql en el foro de PHP en Foros del Web. Hola hermanos, una vez más con molestias acerca de este tema... Algo conozco sobre php y mysql, he alcanzado una poca experiencia en el tema ...
  #1 (permalink)  
Antiguo 22/06/2009, 09:38
 
Fecha de Ingreso: enero-2005
Mensajes: 3
Antigüedad: 19 años, 3 meses
Puntos: 0
Ayuda con un simple insert de una fecha, mysql

Hola hermanos, una vez más con molestias acerca de este tema...

Algo conozco sobre php y mysql, he alcanzado una poca experiencia en el tema y se que cuando se trata de ingresar una fecha al mysql pues no será directo sino se debe cambiar a tipo date... perfecto hasta ahí.

El texto que tiene la fecha está en formato 30/04/2009, lo tomo así y lo cambio con esta sencilla función que encontré por ahí y que la verdad ni recuerdo donde, perdón por el tema de la autoría:

ereg( "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $fecha, $mifecha);
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];

El formato queda definido así: 2009-04-30, lo que en concepto ya serviría para mysql, pero no, todavía no me sirve ya que al intentar ingresar la fecha me sale 0000-00-00, por lo que para concluir le hago un:

mysql_query("INSERT INTO informacion VALUES ($valor1,str_to_date($lafecha,'%Y-%m-%d'),$valor2,$valor3)",$link);

y lo que finalmente llega a la base de datos es: 1975-00-00

Así que aquí estoy, completamente sin saber que más hacer... por cierto, utilizo el wamp 2.0 que trae el php 5.2.9-2 y el mysql 5.1.33...

AYUDA POR FAVOR!!!
  #2 (permalink)  
Antiguo 22/06/2009, 09:54
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: Ayuda con un simple insert de una fecha, mysql

Primero que todo dale un echo a $lafecha y mira que sale.

Y intenta con esta linea

mysql_query("INSERT INTO informacion VALUES ('$valor1',str_to_date('$lafecha','%Y-%m-%d'),'$valor2','$valor3')",$link);
  #3 (permalink)  
Antiguo 22/06/2009, 11:07
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 9 meses
Puntos: 105
Respuesta: Ayuda con un simple insert de una fecha, mysql

Holas,

por seaca depuralas tambien:

$r = mysql_query("INSERT INTO informacion VALUES ('$valor1',str_to_date('$lafecha','%Y-%m-%d'),'$valor2','$valor3')",$link);
if(!$r) die(mysql_error());


Saludos
Gildus
__________________
.: Gildus :.
  #4 (permalink)  
Antiguo 22/06/2009, 18:21
 
Fecha de Ingreso: enero-2005
Mensajes: 3
Antigüedad: 19 años, 3 meses
Puntos: 0
Resuelto...

Todavía no se porqué razón tenía ese estúpido error en el insert del mysql, pero lo que hice fue hacer de forma automática en DreamWeaver, luego copié la función que el DW crea para el insert y cruzando los dedos mandé la información...

PERFECTO!!!

Aca les dejo tanto la función como el insert como lo puse al final...

Código PHP:
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}


              
$insertSQL sprintf("INSERT INTO informacion (valor1,valor2,valor3, valor4) VALUES (%s, %s, %s, %s)",
               
GetSQLValueString($dato1"int"),
               
GetSQLValueString($fecha"date"),
               
GetSQLValueString($dato3"int"),
               
GetSQLValueString($dato4"double"));
            
              
$Result1 mysql_query($insertSQL$link);

                    
$my_error mysql_error($link);
                    echo 
$my_error
En realidad la función no hace nada más que comprobar los formatos, pero de alguna manera cambia la forma en la que se envía al final la información...

Espero le sirva por ahí a alguien más... me despido
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 17:32.