Foros del Web » Programando para Internet » PHP »

comparar fecha de hoy con la fecha de ayer

Estas en el tema de comparar fecha de hoy con la fecha de ayer en el foro de PHP en Foros del Web. buenas a todos. lo que quiero hacer es comparar la fecha de hoy con la fecha de ayer, la fecha de ayer lo recupero con ...
  #1 (permalink)  
Antiguo 22/11/2011, 19:01
 
Fecha de Ingreso: febrero-2009
Mensajes: 61
Antigüedad: 15 años, 1 mes
Puntos: 1
comparar fecha de hoy con la fecha de ayer

buenas a todos.

lo que quiero hacer es comparar la fecha de hoy con la fecha de ayer, la fecha de ayer lo recupero con una consulta a mi tabla producto si son iguales incrementar en 1 la variable i, si no son poner 1 a la variable i este es el script que utilizo.

<?php
$hoy=date("Y-m-d");

$consulta = "SELECT fecha_venta FROM producto order by fecha_venta desc";
$query = mysql_query($consulta, $conectar) or die(mysql_error());
$resul=mysql_result($query, 0);

if($hoy == $resul){
$consulta2= "select numventa from producto order by numventa desc";
$query2 =mysql_query($consulta2, $conectar) or die(mysql_error());
$resultado=mysql_result($query2,0);
$i=$resultado + 1;

}else{
$i=1;
}

?>

este script no me da el resultado como espero cuando se inserta los datos de la venta la variable i simepre es 1, ya inverti el orden todo la consulta2 lo puse en el else, pero se incrementa la variable i sin importar la fecha. por ejemplo el numventa de la fecha de ayer es 25, la primera venta de hoy el numventa es 26, eso no es el resultado que espero deberia de ser 1.

cualquier comentario es bien recibido. saludos
  #2 (permalink)  
Antiguo 23/11/2011, 05:32
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: comparar fecha de hoy con la fecha de ayer

Suponiendo, que tus consultas esten bien, y te devuelva las fechas en formato date()

Lo que te combiene hacer es comparar los timestamp de esas fechas asi estas comparando integers y no datos del tipo fecha, es un poco mas confiable.

Código PHP:
Ver original
  1. <?php
  2. $hoy=date("Y-m-d");
  3. $hoy = strtotime($hoy);
  4.  
  5. $consulta = "SELECT fecha_venta FROM producto order by fecha_venta desc";
  6. $query = mysql_query($consulta, $conectar) or die(mysql_error());
  7. $resul=mysql_result($query, 0);
  8. $resul = strtotime($resul);
  9.  
  10. if($hoy == $resul){
  11. $consulta2= "select numventa from producto order by numventa desc";
  12. $query2 =mysql_query($consulta2, $conectar) or die(mysql_error());
  13. $resultado=mysql_result($query2,0);
  14. $i=$resultado + 1;
  15.  
  16. }else{
  17. $i=1;
  18. }
  19.  
  20. ?>

Si esto no te funciona o la consulta devuelve cualquier cosa o mysql_result(CONSULTA, 0); no devuelve lo que deberia.

Lo que podes probar es cuando haces el mysql_query(); y lo asignas a una variable, en tu caso $query y $query2 es aplicarle un mysql_fetch_array() y utilizarlo como un vector en la posicion 0. Ej:

Código PHP:
Ver original
  1. <?php
  2. $hoy=date("Y-m-d");
  3. $hoy = strtotime($hoy);
  4.  
  5. $consulta = "SELECT fecha_venta FROM producto order by fecha_venta desc";
  6. $query = mysql_query($consulta, $conectar) or die(mysql_error());
  7. $resul=mysql_fetch_array($query);
  8. $resul = strtotime($resul[0]['fecha_venta']);
  9.  
  10. if($hoy == $resul){
  11. $consulta2= "select numventa from producto order by numventa desc";
  12. $query2 =mysql_query($consulta2, $conectar) or die(mysql_error());
  13. $resultado=mysql_fetch_array($query2);
  14. $i=$resultado[0]['numventa'] + 1;
  15.  
  16. }else{
  17. $i=1;
  18. }
  19.  
  20. ?>

Probalo y avisame ;)

Saludos!
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 23/11/2011, 06:15
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Desacuerdo Respuesta: comparar fecha de hoy con la fecha de ayer

Cita:
Iniciado por elrey123 Ver Mensaje
buenas a todos.

lo que quiero hacer es comparar la fecha de hoy con la fecha de ayer, la fecha de ayer lo recupero con una consulta a mi tabla producto si son iguales incrementar en 1 la variable i, si no son poner 1 a la variable i este es el script que utilizo.

<?php
$hoy=date("Y-m-d");

$consulta = "SELECT fecha_venta FROM producto order by fecha_venta desc";
$query = mysql_query($consulta, $conectar) or die(mysql_error());
$resul=mysql_result($query, 0);

if($hoy == $resul){
$consulta2= "select numventa from producto order by numventa desc";
$query2 =mysql_query($consulta2, $conectar) or die(mysql_error());
$resultado=mysql_result($query2,0);
$i=$resultado + 1;

}else{
$i=1;
}

?>

este script no me da el resultado como espero cuando se inserta los datos de la venta la variable i simepre es 1, ya inverti el orden todo la consulta2 lo puse en el else, pero se incrementa la variable i sin importar la fecha. por ejemplo el numventa de la fecha de ayer es 25, la primera venta de hoy el numventa es 26, eso no es el resultado que espero deberia de ser 1.

cualquier comentario es bien recibido. saludos
el planteamiento esta algo confuso, si comparas la fecha de ayer con la de hoy nunca te va a dar igual porque hoy es un dia mas que ayer ¬¬, ahora segun veo estas comparando es con una fecha guardada en una tabla, pudieras hacer esta comparación directo en una sola consulta.

Solo tendrias la de hoy ya que veo que traes solo la ultima y hacer algo como esto
Código PHP:
$query mysql_query("SELECT fecha_venta, numventa FROM producto ORDER BY numventa DESC LIMIT 1") or die(mysql_error());
if(
mysql_num_rows($query) > 0) {
   
$row mysql_fetch_array($query);
    if(
strtotime($row['fecha_venta']) == strtotime(date('Y-m-d'))){
        
$i $row['numventa'] + 1;
    } else {
       
$i 1;
   }

de tal manera que te hayas traido solo el ultimo registro de tu tabla en una sola consulta compares la fecha, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Etiquetas: fecha, mysql, sql, tabla, variables
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 14:06.