09/09/2008, 10:26
|
| | Fecha de Ingreso: agosto-2008
Mensajes: 28
Antigüedad: 16 años, 3 meses Puntos: 0 | |
Respuesta: Procedimientos.. Mi procedimiento:
Código:
CREATE OR REPLACE FUNCTION consulta_ubicacion(IN "varchar", OUT out_x float8, OUT out_y float8, OUT out_time "timestamp", OUT out_ruta "varchar", OUT out_chofer "varchar", OUT out_contacto "varchar", OUT out_principal "varchar", OUT out_secundaria "varchar", OUT out_parroquia "varchar") AS
$BODY$
DECLARE
reg_unidad RECORD;
reg_principal RECORD;
reg_secundaria RECORD;
BEGIN
SELECT re.codigo_uni,
re.the_geom,
x(transform(the_geom,4236)),
y(transform(the_geom,4236)),
time,
r.descripcion,
c.apellido || ' ' || c.nombre AS nombre,
c.telefono
INTO reg_unidad
FROM recorrido re,
unidades u,
chofer c,
rutas r
WHERE re.estado = 'V'
AND re.codigo_uni = $1
AND re.codigo_uni = u.codigo_uni
AND u.codigo_chofer = c.codigo_chofer
AND u.codigo_ruta = r.codigo_ruta
ORDER BY codigo_uni;
SELECT DISTANCE(the_geom, reg_unidad.the_geom),
nombre_ape,
parroquia
INTO reg_principal
FROM vias
WHERE nombre_ape IS NOT NULL
ORDER BY distance LIMIT 5;
SELECT DISTANCE(the_geom, reg_unidad.the_geom),
nombre_ape
INTO reg_secundaria
FROM vias
WHERE nombre_ape IS NOT NULL
AND reg_principal.nombre_ape <> nombre_ape
ORDER BY distance LIMIT 7;
out_x = reg_unidad.x;
out_y = reg_unidad.y;
out_time = reg_unidad.time;
out_ruta = reg_unidad.descripcion;
out_chofer = reg_unidad.nombre;
out_contacto = reg_unidad.telefono;
out_principal = reg_principal.nombre_ape;
out_secundaria = reg_secundaria.nombre_ape;
out_parroquia = reg_principal.parroquia;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION consulta_ubicacion(IN "varchar", OUT out_x float8, OUT out_y float8, OUT out_time "timestamp", OUT out_ruta "varchar", OUT out_chofer "varchar", OUT out_contacto "varchar", OUT out_principal "varchar", OUT out_secundaria "varchar", OUT out_parroquia "varchar") OWNER TO postgres;
Desde php: Código PHP: <?php
$unidad=$_GET[getunidad];
$conn = pg_pconnect("dbname=publicaciones user=postgres password=postgres");
if (!$conn)
{
echo "ERROR: No se pudo conectar co.\n";
exit;
}
$sql="
SELECT (consulta_ubicacion('$unidad')).out_x,
(consulta_ubicacion('$unidad')).out_y,
(consulta_ubicacion('$unidad')).out_time,
(consulta_ubicacion('$unidad')).out_ruta,
(consulta_ubicacion('$unidad')).out_chofer,
(consulta_ubicacion('$unidad')).out_contacto,
(consulta_ubicacion('$unidad')).out_principal,
(consulta_ubicacion('$unidad')).out_secundaria,
(consulta_ubicacion('$unidad')).out_parroquia
";
$resultado=pg_query($conn,$sql);
$final=pg_fetch_array($resultado,0);
$respuesta_x=$final['out_x'];
$respuesta_y=$final['out_y'];
$respuesta_time=$final['out_time'];
$respuesta_ruta=$final['out_ruta'];
$respuesta_chofer=$final['out_chofer'];
$respuesta_contacto=$final['out_contacto'];
$respuesta_principal=$final['out_principal'];
$respuesta_secundaria=$final['out_secundaria'];
$respuesta_parroquia=$final['out_parroquia'];
$prueba = "{
\"datos\":
[{
\"junidad\":\"$unidad\" ,
\"jx\":\"$respuesta_x\" ,
\"jy\":\"$respuesta_y\" ,
\"jtime\":\"$respuesta_time\" ,
\"jruta\":\"$respuesta_ruta\" ,
\"jchofer\":\"$respuesta_chofer\" ,
\"jcontacto\":\"$respuesta_contacto\" ,
\"jprincipal\":\"$respuesta_principal\" ,
\"jsecundaria\":\"$respuesta_secundaria\" ,
\"jparroquia\":\"$respuesta_parroquia\"
}]
}";
echo $prueba;
?> Saludos... |