Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2009, 04:56
Brudor
 
Fecha de Ingreso: noviembre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Bucle de consultas SQL

Bueno, soy Brudor, soy desarrollador en JavaME y web. Estoy desarrollando una aplicacion para BlackBerry de posicionamiento GPS, la cual va enviando las coordenadas a un servidor propio, que las almacena en una BD.

Hasta ahí todo bien.

En el servidor tengo una página web donde, a través de una cuenta personal, cada usuario puede visualizar los datos enviados por su/sus dispositivo/s en un mapa de Google.

Bueno, la cuestion es que una de las funciones consiste en mostrar la última localización de cada uno de los dispositivos asociados a tu cuenta, por lo que en primer lugar consultamos cuales son los dispositivos con :

Código PHP:
$consulta="SELECT * FROM ft_devices WHERE id_user = '$id_user'";
$devices exe_select($consulta,$conexion);
show_table($devices); 
donde $id_user viene de $_SESSION, exe_select es una función propia para hacer la consulta y devolverla al resource $devices y la funcion show_table($resultado) es una funcion propia que imprime una tabla y la cantidad de registros que hay en ella., de modo que el resultado sería:

ID KEY DEVICE_NAME ID_USER
1 1234 Dispositivo 1 1
2 abcd Dispositivo 2 1

Esto significa que el usuario con ID=1 tiene contratados dos dispositivos.

Ahora bien, como todos los datos de coordenadas, fecha y hora de todos los dispositivos están en la misma tabla, necesito hacer una consulta por cada uno de ellos para sacar la última posicion, con:

Código PHP:
while ($fila mysql_fetch_array($devices)){

echo 
$fila[2];
$query 'SELECT MAX(id),id_phone,lat,lon,date,time FROM ft_routes WHERE id_phone='.$fila[1];
$resultado=exe_select($query$conexion);
show_table($resultado);
    

donde $fila[1] corresponde a la KEY, el identificador del aparato en la tabla ft_routes.



Aquí es donde tengo el problema. Quiero ejecutar tantas consultas del tipo anterior como dispositivos haya, pero solo funciona la primera consulta del bucle. He probado haciendo un array de conexiones, pero no es posible. He probado haciendo un array de consultas y un array de resultados, pero siempre ocurre esto:

Código HTML:
Dispositivo 1
MAX(ID)	ID_PHONE	LAT	LON	DATE	TIME
107	1234	37.3583	-6.02793	2009-10-13	14:17:03

1 resultado.

Dispositivo 2

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\AI_ajax\funciones.php on line 78

Warning: mysql_num_fields() expects parameter 1 to be resource, boolean given in C:\wamp\www\AI_ajax\funciones.php on line 80

Warning: mysql_num_fields() expects parameter 1 to be resource, boolean given in C:\wamp\www\AI_ajax\funciones.php on line 103

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\AI_ajax\funciones.php on line 111

No hay resultados

¿Alguna idea?