Foros del Web » Programando para Internet » PHP »

$fecha = 'now()'

Estas en el tema de $fecha = 'now()' en el foro de PHP en Foros del Web. Disculpen por esta pregunta pero recien estoy conociendo el lengiaje PHP `y lo logro aun poder grabar la fecha de registro en mi tabal de ...
  #1 (permalink)  
Antiguo 05/09/2005, 22:33
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Pregunta $fecha = 'now()'

Disculpen por esta pregunta pero recien estoy conociendo el lengiaje PHP `y lo logro aun poder grabar la fecha de registro en mi tabal de mysql
Código PHP:
// tengo mi variable
$fecha 'now()'
$insert 'Insert into prueba (fecha) values("'.$fecha.") 
hasta ahi todo bien pero cuadno reviso mi data me sale
Fecha = 0000-00-00

Haber quien me da una mano :(
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #2 (permalink)  
Antiguo 05/09/2005, 22:47
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Mira, hay varias cosas, primero que nada, toda instrucción en PHP debe terminar como en C con un ";". Lo segundo es que tienes 2 formas de hacer eso, una es con la función date() (recuerda que en MySql debes ingresar la fecha en el formato aaaa/mm/dd), pero lo ideal en estos casos es que la DB se ocupe de ingresar la fecha, en MySql la función en NOW() (No estoy seguro ).
Código PHP:
$fecha date("Y-m-d");
$insert 'Insert into prueba (fecha) values("'.$fecha.'")';

// O con MySql

$insert 'insert into prueba (fecha) values (NOw())'
Saludos.
  #3 (permalink)  
Antiguo 05/09/2005, 23:59
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Como ya te dijeron un error por parte de PHP es que no finalizas las sentencias, además en tu segunda línea no estás cerrando la cadena (te faltaría una comilla a el final).

Lo que estás intentando podría decirse que esta bien; intentas colocar la función en una variable y pasarsela a la query... el error que tienes es que las funciones de SQL no deben estar entrecomilladas... si corrijieras los errores que se te mencionaron tendrías al final una query de este tipo:
Código:
Insert into prueba (fecha) values("NOW()")
por estar entre comillas "NOW()" lo estás pasando como texto, no como función por eso no te sirve e inserta puros 0's --valor por defecto--. Entonces lo correcto sería:
Código PHP:
// tengo mi variable
$fecha "NOW()"// igual decir que lo correcto es usar las funciones con mayúsculas
$insert "Insert into prueba (fecha) values($fecha)"// ya no queda entre comillas 
Cierto que igual puedes sacar el valor de la fecha actual con PHP y la función date(), pero es más óptimo usar puro SQL para ello. Igual decir que para un campo DATE (YYYY-MM-DD) lo indicado es usar la funcón CURDATE() que te devuelve presisamente solo la fecha, al contrario de NOW() que devuelve "el momento" (YYYY-MM-DD hh:mm:ss).

http://dev.mysql.com/doc/mysql/en/da...functions.html
http://www.mysql-hispano.org/page.php?id=31&pag=6

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 06/09/2005, 10:18
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Me sale este error

Gracias estuve viendo los consejos y pues estoy intento hacerlo con
Código PHP:
//mi variable fecha    
$fecha DATE_FORMAT(CURDATE(), '%d/%m/%Y');

//inserto mis campos
$insert "Insert into prueba (fecha) values ($fecha)"
Pero me sale este errror :
Fatal error: Call to undefined function: date_format()
mi campo fecha creado es
fecha DATE NOT NULL ,

Quisiera saber cual es mi error o no es asi como se deria de hacer, segun este ejemplo :
DATE_FORMAT(). Nos permite presentar las fechas en otros formatos. Los formatos que usaremos son '%d/%m/%y' y '%d/%m/%Y'.
Ejemplo:
Código PHP:
SELECT DATE_FORMAT(CURDATE(),%d/%m/%Y); 
Produce 01/01/2005.

http://www.mysql-hispano.org/page.php?id=31&pag=6
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #5 (permalink)  
Antiguo 06/09/2005, 10:51
Avatar de EternalWitness  
Fecha de Ingreso: agosto-2005
Mensajes: 146
Antigüedad: 18 años, 8 meses
Puntos: 2
prueba como te dijeron, sacando la fecha directamente con sql
Código PHP:
$insert "Insert into prueba (fecha) values (current_date())"
  #6 (permalink)  
Antiguo 06/09/2005, 23:20
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por helthon
Quisiera saber cual es mi error o no es asi como se deria de hacer (...)
... tu error es que al hacer
Código PHP:
$fecha DATE_FORMAT(CURDATE(), '%d/%m/%Y'); 
estás invocando una función en PHP (ya sea propia del lenguaje o tuya); ve el mensaje que te da, esa función no existe (no esta definida) y es coorecto esa función es de SQL.

Creo que debes entender bien que es PHP y la forma de trabajar con SQL, darte cuenta que son cosas totalmente diferentes e independientes; Para PHP las sentencias SQL no son más que strings sí quieres manejar una función SQL como variable PHP dicha variable tiene que ser eso --un string--.

Lo "correcto" sería:
Código PHP:
//mi variable fecha    
$fecha "DATE_FORMAT(CURDATE(), '%d/%m/%Y')";

//inserto mis campos
$insert "Insert into prueba (fecha) values ($fecha)"
ve que ahora sé te armaría la query que buscas... pero no entrecomille "correcto" por nada...

La función DATE_FORMAT(), correcto, pero temo que es un error darle un formato a la fecha para que esta sea insertada --probablemente, según lo que necesites-- ya que entonces no podrías manejarlo como lo que son: datos de tiempo. Simplemente no te servirá si tu campo es DATE, para emplear esa query necesitarías hacerlo sobre un campo VARCHAR. Ve que los enlaces que se te han dejado son de SQL, repito, otro lenguaje totalmente independiente de PHP... y si no va a haber algo por parte de PHP que haga que tu query varié al mezclar las cosas estás haciendo trabajo extra (gastando recursos).

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 06/09/2005 a las 23:26
  #7 (permalink)  
Antiguo 20/09/2005, 21:07
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
$fecha = 'now()' | DATE_FORMAT(CURDATE(), '%d/%m/%Y');

Estoy tratando de guardar la Fecha con las opciones que me indican pero me sale todo tipo de error y no logro el saber porque probe todos sus ejemeplos

Código:
$insert = "Insert into prueba (fecha) values (current_date())"; 

//mi variable fecha     
$fecha = "DATE_FORMAT(CURDATE(), '%d/%m/%Y')"; 

//inserto mis campos 
$insert = "Insert into prueba (fecha) values ($fecha)";
Código PHP:
<?php
require_once('../confdatab/conexionbd.php');
//read inputs field
    
$categoria $_POST['categoria'];
    
$titulo $_POST['titulo'];
    
$detalle $_POST['descripcion'];
    
$contenido $_POST['contenidoweb'];
    
//$imagen = 'NOT';
    
$fuente =  $_POST['fuente'];
    
//$fecha = DATE_FORMAT(CURDATE(), '%d/%m/%Y'); 
    //$fecha = 'now()';
    
    //insert new record
    
$insert 'Insert into publicaciones (categoria, titulo, descripcion, contenido, imagen, fuente, fecha) values 
    ("'
.$categoria.'", "'.$titulo.'", "'.$detalle.'", "'.$contenido.'", "'.$imagen.'", "'.$fuente.'", now()")';
    
$resultIn mysql_query($insert$dbh);
    
$id mysql_insert_id(); 
    
    
$rs mysql_query($dbh$con) or die("Error al grabar el registro: ".mysql_error());
Me sale este error :
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/secre/public_html/admin/editorguardar.php on line 19
Error al grabar el registro: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '")' at line 2

Pero si borro toda la opcion de la fecha no em graba nada
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #8 (permalink)  
Antiguo 21/09/2005, 09:27
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Haber si ,me dan una pista con el DATE_FORMAT(CURDATE(), '%d/%m/%Y');
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #9 (permalink)  
Antiguo 21/09/2005, 10:05
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Porque no haces caso a lo que te dice jam1138?

DATE_FORMAT y CURDATE NO son funciones de PHP (a menos que las hayas definido), estas son funciones de SQL (MySQL supongo) y es por eso que te manda el error, en los primeros mensajes ya te indicaron como tienes que insertar las fechas, así que no tiene sentido que te diga como hacerlo. Por otro lado si quieres insertar las fechas en diferente formato a "%Y-%m-%d", supongo que tienes que configurar el MySQL para que haga eso.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #10 (permalink)  
Antiguo 21/09/2005, 10:16
 
Fecha de Ingreso: agosto-2005
Mensajes: 143
Antigüedad: 18 años, 8 meses
Puntos: 0
Basandome en tu último post.

1.- No has conectado bien con el servidor...si traduces el error verás que un arguento está mal.
2.- En el segundo error es porque a la hora de hacer la consulta no te reconoce now(). Buen, en realidad es un error de sintaxis aunque no se si existe esa función.

Por otra parte evitaría problemas si usaras al timestamp actual, usando time().

Para mostrar la fecha solo tendrías que usar date(), gmdate(), getdate() o lo que te de la gana pero pasándole como segundo parámetro el timestamp que as obtenido de la BD. No se si me explico.

http://es2.php.net/manual/es/function.date.php
http://es2.php.net/manual/es/function.gmdate.php
http://es2.php.net/manual/es/function.getdate.php
  #11 (permalink)  
Antiguo 21/09/2005, 10:40
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Gracias asi lo hare
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
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 12:02.