Ver Mensaje Individual
  #9 (permalink)  
Antiguo 17/06/2013, 04:37
inforob
 
Fecha de Ingreso: octubre-2011
Mensajes: 113
Antigüedad: 12 años, 6 meses
Puntos: 5
Respuesta: Problema con consulta en PHP

Cita:
Iniciado por taboacar Ver Mensaje
Buenos dìas,

Tengo una aplicacion web desarrollada en PHP y me encuentro en un callejon sin salida.

El problema surge cuando quiero sacar la fecha mas alta de una serie de datos de la bbdd. La sentencia sql funciona perfectamente en la base de datos pero a la hora de ejecutarla desde la aplicacion me devuelve vacia.

Me explico mejor.

Tengo una bbdd hecha en Access, y desde la aplicacion realizo una serie de consultas.
En este caso la consulta es la siguiente:
Código PHP:
Ver original
  1. public function get_crwb_request_date()
  2.         {
  3.             //$query = 'SELECT request_date FROM transport WHERE (request_date = (SELECT MAX(request_date) FROM transport WHERE (transport_type LIKE "crwb*")))';
  4.             $query = 'SELECT Max(transport.request_date) FROM transport WHERE (((transport.request_date) Is Not Null) AND ((transport.transport_ref) Like "CRWB*"))';
  5.             try
  6.             {
  7.                 $result = $this->dbh->prepare($query);
  8.                 $result->execute();
  9.                 $rows = NULL;
  10.                 if ($result)
  11.                 {
  12.                     $rows = $result->fetchAll(PDO::FETCH_ASSOC);
  13.                     $rows = $this->filter_rows($rows);
  14.                 }
  15.                 return $rows;
  16.             }
  17.             catch (PDOException $e)
  18.             {
  19.                 $this->fatal_error($e->getMessage());
  20.             }
  21.            
  22.         }

En la bbdd creo una consulta y pongo la misma sentencia y me devuelve el valor correcto, pero cuando la ejecuto desde la aplicación siempre me devuelve vació.

Tengo comentada otra linea en el código que es la misma sentencia pero de diferente forma, y tampoco me devuelve nada en la aplicación.

Alguien sabe porque puede ser?

Muchas gracias.

Un saludo
mmm MAX es para datos numéricos y no se que formato tienes en el campo fecha de tu BBDD.

Si está en formato date o timestamp, o incluso un VARCHAR (haciendo debidamente la conversión a timestamp) puedes o deberias usar las funciones SQL para fecha.

SELECT * FROM tu_tabla ORDER BY campo_tu_fecha(en formato timestamp)