Foros del Web » Programando para Internet » PHP »

Fechas con PHP Y MYSQL

Estas en el tema de Fechas con PHP Y MYSQL en el foro de PHP en Foros del Web. Buen dia. Tengo un problema con php y mysql, lo que se necesita es restar dias y luego mostrar el resultado. Explico, en el formulario ...
  #1 (permalink)  
Antiguo 25/07/2014, 09:01
 
Fecha de Ingreso: junio-2013
Mensajes: 68
Antigüedad: 10 años, 9 meses
Puntos: 1
Fechas con PHP Y MYSQL

Buen dia.

Tengo un problema con php y mysql, lo que se necesita es restar dias y luego mostrar el resultado.

Explico, en el formulario tengo dos fechas ejemplo

2014-06-26 (hora de entrada)
2014-06-29 (hora de salida)

con SELECT DATEDIFF(fecha_fin, fecha_inicio) AS diferencia

SELECT DATEDIFF (2014-06-29, 2014-06-26) AS diferencia

El problema que tengo es que son 3 días pero cuando muestro el resultado me dice Array o me muestra la consulta, si ejecuto la consulta en mysql si me muestra los 3 días pero en PHP me salen los 2 errores.

Gracias
  #2 (permalink)  
Antiguo 25/07/2014, 10:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Fechas con PHP Y MYSQL

Postea el código del script. Con lo que nos dices no alcanza para saber dónde estás cometiendo el error.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/07/2014, 17:12
 
Fecha de Ingreso: junio-2013
Mensajes: 68
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Fechas con PHP Y MYSQL

Les dejo el codigo

Cita:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<?PHP
error_reporting(0);
//OBTENGO VALORES INTRODUCIDOS EN EL FORMULARIO

$insertar = $_REQUEST['insertar'];
$fecha_inicio = $_REQUEST['fecha_inicio'];
$fecha_termino = $_REQUEST['fecha_termino'];
$query = mysql_result("select DATEDIFF(" . $fecha_termino . ", " . $fecha_inicio . ")");


if (isset($insertar) && $error==false)
{
//INSERTO DATOS EN BD

$conexion = mysql_connect ("localhost", "root", "password")
or die ("No se puede conectar con el servidor");
mysql_select_db ("fecha")
or die ("No se puede seleccionar la base de datos");

$instruccion = "insert into tabla (fecha_inicio, fecha_termino, dias )
values ('$fecha_inicio', '$fecha_termino', '$query')";

mysql_query ($instruccion, $conexion) or die (mysql_error());
mysql_close($conexion);
// mostrar datos

print ("<br>\n");

print ("<center><H1>\nMuestro resultados</font></H1>\n");
print (" <LI>Fecha de Inicio:" . $fecha_inicio . "</strong>\n");
print (" <LI>Diferencia de fechas=" . $query . "</strong>\n");

}
else
{


//FORMULARIO DONDE OBTENGO LAS FECHAS
?>
<FORM CLASS="borde" ACTION="dem.php" NAME="fcalen" METHOD="POST"
ENCTYPE="multipart/form-data">

<?php
if (isset($_POST));
?>


<!-- fecha_inicio-->
Fecha de Inicio:</br>
<INPUT TYPE="TEXT" NAME="fecha_inicio" SIZE="8" MAXLENGTH="70"
<?PHP
if (isset ($insertar))
print ("VALUE='$fecha_inicio'>\n");

?>></br>

<!-- fecha_termino-->
Fecha termino:</br>
<INPUT TYPE="TEXT" NAME="fecha_termino" SIZE="8" MAXLENGTH="70"
<?PHP
if (isset ($insertar))
print ("VALUE='$fecha_termino'>\n");
?>></br>


<input type="submit" name="insertar" value="Insertar fechas" >
<?php
}
?>
</body>
</html>
  #4 (permalink)  
Antiguo 25/07/2014, 17:51
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.551
Antigüedad: 12 años, 4 meses
Puntos: 977
Respuesta: Fechas con PHP Y MYSQL

Para hacer una consulta, debes de usar la función mysql_query, no mysql_result que sirve para recoger los datos específicos de un conjunto de datos (resultado de una consulta), además, tienes que indicar la tabla sobre la que harás la consulta.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 28/07/2014, 07:42
 
Fecha de Ingreso: junio-2013
Mensajes: 68
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Fechas con PHP Y MYSQL

gracias por la respuesta ya lo utilice
Cita:
mysql_query
, pero me imprime la palabra Array
  #6 (permalink)  
Antiguo 28/07/2014, 09:30
 
Fecha de Ingreso: junio-2013
Mensajes: 68
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Fechas con PHP Y MYSQL



Si ejecuto la consulta en phpmyadmin, me muestra los valores sin tener que consultar en tablas, y lo que nesesito es optener el resultado, en php.

espero y me de a entender y gracias.
  #7 (permalink)  
Antiguo 28/07/2014, 10:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Fechas con PHP Y MYSQL

Es que estás codificando cualquier cosa...

Código PHP:
Ver original
  1. $insertar = $_REQUEST['insertar'];
  2. $fecha_inicio = $_REQUEST['fecha_inicio'];
  3. $fecha_termino = $_REQUEST['fecha_termino'];
  4. $query = mysql_result("select DATEDIFF(" . $fecha_termino . ", " . $fecha_inicio . ")");

Acá estás invocando una función mysql_result(), cuando no has abierto la conexión (cosa que haces después), ni tampoco ejecutado una consutla.

¿Qué se supone que crees que hace eso?


Código PHP:
Ver original
  1. $instruccion = "insert into tabla (fecha_inicio, fecha_termino, dias )
  2. values ('$fecha_inicio', '$fecha_termino', '$query')";
Acá estarías ejecutando un insert, pero $query no tendría nada, o en todo caso tiene un array nulo, pero no es un dato válido para MySQL.

¿Tienes claro que para que se pueda ejecutar cualquier consulta a MySQL, la conexión debe estar previamente abierta, aún cuando no sean consultas a tablas, y que mysql_result() sólo puede operar si se ha ejecutado una query previa con mysql_query()?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 28/07/2014, 11:14
 
Fecha de Ingreso: junio-2013
Mensajes: 68
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Fechas con PHP Y MYSQL

lo que hago es hacer el if primero,

como no tengo variables pide el formulario, después de pedir el formulario y darle en insertar fechas, me carga de nuevo la pagina pero ya con las variables y me inserta las variables en la consulta.

por cierto la pagina se llama dem.php la deje de tal forma que puedan copiar y ejecutarlo la base se llama fecha, la tabla se llama igual "tabla" y los campos id, fecha_inicio, fecha_termino, fecha,
  #9 (permalink)  
Antiguo 28/07/2014, 12:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Fechas con PHP Y MYSQL

Cita:
por cierto la pagina se llama dem.php la deje de tal forma que puedan copiar y ejecutarlo la base se llama fecha, la tabla se llama igual "tabla" y los campos id, fecha_inicio, fecha_termino, fecha,


Creo que estás suponiendo que es habitual que copiemos y probemos directamente código ajenos en nuestra PC... ¿No?
Bueno, alguno puede que lo haga, pero habitualmente no. No lo hacemos. No tenemos tanto tiempo, ni nos podemos poner a probar en nuestros equipos cosas que no andan,
Contamos con que tu mismo pruebes las cosas que te sugerimos, y que nos cuentes lo que poasa con esas pruebas. Pero eso es tarea para que hagas de tu lado...

Como sea, cuando dices:
Cita:
como no tengo variables pide el formulario, después de pedir el formulario y darle en insertar fechas, me carga de nuevo la pagina pero ya con las variables y me inserta las variables en la consulta.
me da la impresión de que no parece que tengas claro cómno se trabaja con PHP, y estás intentado hacer algo demasiado interactivo.
Creo que lo que quieres hacer correspondería mejor hacerlo con AJAX, pero es tu decisión.
En mi cso, veo que no me estás respondiendo las preguntas:

Cita:
...estás invocando una función mysql_result(), cuando no has abierto la conexión (cosa que haces después), ni tampoco ejecutado una consutla.
¿Qué se supone que crees que hace eso?
Cita:
Acá estarías ejecutando un insert, pero $query no tendría nada, o en todo caso tiene un array nulo, pero no es un dato válido para MySQL.

¿Tienes claro que para que se pueda ejecutar cualquier consulta a MySQL, la conexión debe estar previamente abierta, aún cuando no sean consultas a tablas, y que mysql_result() sólo puede operar si se ha ejecutado una query previa con mysql_query()?
Aún en el contexto que describes al final, lo que te observo yo sigue siendo válido:
En el primer caso, no puedes invocar esa función sin haber ejecutado una query previa que devuelva datos, cosa que no haces.
En el segudo caso, esa variable no contiene datos válidos para MYSQL.

¿Eso te queda claro?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: fecha, formulario, mysql, select
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 15:27.