
Update Em Tabela.
#1
Posted 24/10/2008, 18:43
t_gpsdata :
id, latitude, longitude, speed, userid, Timestamp.
Preciso fazer uma atualização dos campos latitude e longitude a cada 1 segundo.
Qual seria a query necessária para esta operação ?
#2
Posted 25/10/2008, 19:45

VocÊ tem um registro por segundo ou é aleatório?
#3
Posted 27/10/2008, 17:04
VocÊ tem um registro por segundo ou é aleatório?
Na realidade é aleatório. Veja um "dump" da tabela pelo PHPMyAdmin :
CREATE TABLE `t_gpsdata` (
`id` int(4) NOT NULL auto_increment,
`latitude` varchar(40) NOT NULL,
`longitude` varchar(40) NOT NULL,
`speed` float NOT NULL,
`userid` varchar(255) NOT NULL,
`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=25501 ;
--
-- Extraindo dados da tabela `t_gpsdata`
--
INSERT INTO `t_gpsdata` (`id`, `latitude`, `longitude`, `speed`, `userid`, `timestamp`) VALUES (2, '47.51124', '7.555198', 3, '14', '2008-10-07 13:51:42'),
(3, '47.51123', '7.555215', 0, '14', '2008-10-07 13:51:59'),
(4, '47.51119', '7.555115', 0, '14', '2008-10-07 13:52:11'),
(5, '47.51119', '7.555115', 0, '14', '2008-10-07 13:52:21'),
(6, '47.51119', '7.555115', 0, '14', '2008-10-07 13:52:37'),
(7, '47.51119', '7.555115', 0, '14', '2008-10-07 13:52:49'),
(8, '47.51126', '7.55472', 0, '14', '2008-10-07 13:52:59'),
(9, '47.51124', '7.555107', 7, '14', '2008-10-07 13:53:15'),
(10, '47.5112', '7.555652', 5, '14', '2008-10-07 13:53:27'),
(11, '47.5112', '7.5553', 1, '14', '2008-10-07 13:53:37'),
(12, '47.51122', '7.5552', 0, '14', '2008-10-07 13:53:53'),
(13, '47.51123', '7.554805', 0, '14', '2008-10-07 13:54:05'),
(14, '47.51123', '7.554805', 0, '14', '2008-10-07 13:54:15'),
(15, '47.51124', '7.555195', 0, '14', '2008-10-07 13:54:32'),
(16, '47.5112', '7.555413', 0, '14', '2008-10-07 13:54:44'),
(17, '47.5112', '7.555413', 0, '14', '2008-10-07 13:54:54'),
(18, '47.51116', '7.55581', 0, '14', '2008-10-07 13:55:10'),
(19, '47.51121', '7.555387', 0, '14', '2008-10-07 13:55:22'),
(20, '47.51128', '7.55467', 0, '14', '2008-10-07 13:55:31') ;
estes são os 20 primeiros registros da tabela. Eu preciso atualizá-los segundo a segundo.
Obrigado.
#4
Posted 27/10/2008, 20:48

Se você quiser fazer usando apenas MySQL, vai ter que fazer uma STORED PROCEDURE...
Fica mais fácil se for usar PHP junto, por exemplo...
Mas você vai conseguir um rowset com os dados que você tem na tabela, mas vai precisar entrar num LOOP ou usar uma função de repetição pra preencher os que nãoo tem... entendeu?
#5
Posted 27/10/2008, 21:08
Então não é tão simples
Se você quiser fazer usando apenas MySQL, vai ter que fazer uma STORED PROCEDURE...
Fica mais fácil se for usar PHP junto, por exemplo...
Mas você vai conseguir um rowset com os dados que você tem na tabela, mas vai precisar entrar num LOOP ou usar uma função de repetição pra preencher os que nãoo tem... entendeu?
Sim, obrigado, na verdade estou passando estes dados da tabela para um script PHP gerar um XML ou RSS e efetuar uma visualização das posições de um objeto dentro de um mapa.
No PHP a query deveria ficar assim :
mysql_select_db($database_liveserver, $liveserver); $query_position = "SELECT * FROM t_gpsdata ( INTERVAL ... aqui está o problema ?) ORDER BY id DESC";
Tenho um conhecimento limitado em MySQL, assim estou na dúvida como usar a função INTERVAL , me parece a mais certa para dar este refresh na tabela com um intervalo de 1 segundo.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)