Jump to content


Photo

Update Em Tabela.


  • Faça o login para participar
4 replies to this topic

#1 rickjames

rickjames

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre(RS)
  • Interesses:Desenvolvimento Web.

Posted 24/10/2008, 18:43

Tenho em minha base de dados uma tabela com esta estrutura :
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 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 25/10/2008, 19:45

:ponder:
VocÊ tem um registro por segundo ou é aleatório?

#3 rickjames

rickjames

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre(RS)
  • Interesses:Desenvolvimento Web.

Posted 27/10/2008, 17:04

:ponder:
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 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 27/10/2008, 20:48

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?

#5 rickjames

rickjames

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre(RS)
  • Interesses:Desenvolvimento Web.

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)

IPB Skin By Virteq