afbartels 0 Denunciar post Postado Maio 30, 2008 Olá pessoal, preciso da ajuda de vocês. Criei um sistema de consultas ao BD MySql em php e to com o seguinte problema. Para acesso de um único usuário o sistema roda beleza, mas ele for acessado por mais de um usuário ele cria um confusão nas consultas. Parece que está misturando as requisições de consultas ao banco. Alguém pode me dar ajuda de como resolver este tipo de concorrência de acesso? Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Aleixo 1 Denunciar post Postado Maio 30, 2008 Olá pessoal, preciso da ajuda de vocês. Criei um sistema de consultas ao BD MySql em php e to com o seguinte problema. Para acesso de um único usuário o sistema roda beleza, mas ele for acessado por mais de um usuário ele cria um confusão nas consultas. Parece que está misturando as requisições de consultas ao banco. Alguém pode me dar ajuda de como resolver este tipo de concorrência de acesso? Kra.....eu tenho varios sistemas montados em php que consultam o BD....e que tem inclusive gerenciamento de usuários!!!! ele roda normal!!! comvarios usuários ao mesmo tempo....inclusive com o mesmo usuário logado 2 vezes em pcs diferentes.... eu gostaria de saber o que você fez...que eu queria bloquear o acesso do mesmo user em 2 pcs.... hehehehehe posta o codigo pra gente ver!!!! abraços!!! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 1, 2008 reforço comentário do Rodrigo, depende de como você estruturou os sistema.. Compartilhar este post Link para o post Compartilhar em outros sites
afbartels 0 Denunciar post Postado Junho 4, 2008 Pessoal achei meu problema aqui. Não é na consulta ao Banco e sim quando eu faço a seleção dos atributos para realizar a consulta. Resumindo: O sistema calcula a faixa salarial de acordo com o periodo, função e tempo de serviço do funcionario. Como funciona: A 1ª página seleciona o periodo, a 2ª a função e a 3ª o tempo de casa do funcionário. Após a seleção dos atributos é gerada a 4ª página com o resultado da consulta. Estou passando os dados de uma página pra outra via POST. Exemplo 1: Quero saber quanto um funcionario de função "A", com 15 anos de casa, ganhou de jan/2000 a dez/2001. Se eu logar em outra máquina e fizer uma consulta diferente ao mesmo tempo. Exemplo 2: Quanto um funcionário de função "B", com 20 anos de casa, ganhou de mar/2005 a dez/2007. O que acontece que antes da consulta ao banco os dados das informações estou se misturando. Consulta 1: jan/2000 a dez/2001 função "B", com 15 anos de casa. Consulta 2: mar/2005 a dez/2007 função "B", com 15 anos de casa. ou seja, ele ta pegando a primeira informação que foi inserida. Espero ter explicado melhor. Compartilhar este post Link para o post Compartilhar em outros sites
afbartels 0 Denunciar post Postado Junho 10, 2008 Ninguém tem uma idéia para me ajudar??? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 11, 2008 depende da estrutura. mostre a estrutura das tabelas do banco de dados Compartilhar este post Link para o post Compartilhar em outros sites
afbartels 0 Denunciar post Postado Junho 11, 2008 Ta aí a estrutura. CREATE TABLE `abono10` ( `coda10` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, PRIMARY KEY (`coda10`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `abonofardamento` ( `codaf` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codaf`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `abonovalor` ( `codabv` int(11) NOT NULL auto_increment, `valor` float(10,2) unsigned NOT NULL, `codper` int(11) unsigned NOT NULL, `beneficiario` varchar(50) character set latin1 collate latin1_general_ci NOT NULL, `observacoes` mediumtext, PRIMARY KEY (`codabv`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `adictrintenario` ( `codat` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codat`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `auxmoradia` ( `codauxmor` int(11) unsigned NOT NULL auto_increment, `valor` float(12,2) unsigned NOT NULL default '0.00', `beneficiario` varchar(50) NOT NULL, `codper` int(10) unsigned default NULL, `observacoes` mediumtext, PRIMARY KEY (`codauxmor`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `beneficio` ( `codben` int(10) unsigned NOT NULL, `soldo` double(15,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `codpst` int(10) unsigned NOT NULL, `codcur` int(10) unsigned NOT NULL, PRIMARY KEY (`codben`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `caixabeneficente` ( `codcb` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentmensalidade` float(10,2) unsigned NOT NULL, `tetomensalidade` float(10,2) unsigned NOT NULL, `porcentpeculio` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, `observacoes` int(11) unsigned default NULL, PRIMARY KEY (`codcb`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `curso` ( `codc` int(10) unsigned NOT NULL, `descricao` varchar(30) collate latin1_general_ci NOT NULL, `ordem` int(2) unsigned NOT NULL, PRIMARY KEY (`codc`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `etapaalimentacao` ( `codeta` int(11) unsigned NOT NULL auto_increment, `valor` float(12,2) unsigned NOT NULL default '0.00', `beneficiario` varchar(50) NOT NULL, `codper` int(11) unsigned NOT NULL default '0', `observacoes` mediumtext, PRIMARY KEY (`codeta`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `funcaomilitar` ( `codfm` int(10) unsigned NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codfm`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `funcaomilitarb` ( `codfm2` int(10) unsigned NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `incidencia` varchar(50) collate latin1_general_ci NOT NULL, `codper` int(10) unsigned NOT NULL, `codcur` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codfm2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `fundopensao` ( `codfp` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, `ativo` int(1) NOT NULL default '0', PRIMARY KEY (`codfp`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `graduacao` ( `codgrad` int(10) unsigned NOT NULL, `tipograd` varchar(30) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codgrad`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `gratart204` ( `codga` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, `incorp` int(1) unsigned NOT NULL default '0', PRIMARY KEY (`codga`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `gratespecial` ( `codge` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codge`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `gratgab` ( `codgg` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, `tipo` char(10) collate latin1_general_ci NOT NULL, `funcmil` float(10,2) NOT NULL default '0.00', `funcmil2` int(1) unsigned NOT NULL default '1', `ativo` int(1) NOT NULL default '0', PRIMARY KEY (`codgg`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `gratlei2485` ( `codgl` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, `incorp` int(1) unsigned NOT NULL default '0', PRIMARY KEY (`codgl`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `gratnatal` ( `codnat` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, `descprev` int(1) NOT NULL default '0', PRIMARY KEY (`codnat`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `habprof` ( `codhp` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `codcur` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codhp`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `mensagens` ( `codmsg` int(11) unsigned NOT NULL auto_increment, `observacoes` mediumtext, `msgsis` int(1) unsigned default '0', PRIMARY KEY (`codmsg`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `moeda` ( `codmoeda` int(11) unsigned NOT NULL auto_increment, `moeda` char(30) NOT NULL, `iconemoeda` char(10) default NULL, `dataini` date NOT NULL, `datafim` date NOT NULL, PRIMARY KEY (`codmoeda`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `periodo` ( `codperiodo` int(10) unsigned NOT NULL auto_increment, `datainicial` date NOT NULL, `datafinal` date NOT NULL, PRIMARY KEY (`codperiodo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `postocargo` ( `codpst` int(5) unsigned NOT NULL, `descpst` varchar(30) collate latin1_general_ci NOT NULL, `grad` int(1) unsigned NOT NULL, `ordem` int(2) unsigned NOT NULL, `sigla` varchar(2) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codpst`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `promoadtrint` ( `codadt` int(11) unsigned NOT NULL auto_increment, `dataadt` date NOT NULL, PRIMARY KEY (`codadt`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `promocao` ( `codpromo` int(11) unsigned NOT NULL auto_increment, `datapromo` date NOT NULL, `pstgrd` int(11) unsigned NOT NULL, `curso` int(8) unsigned NOT NULL default '0', PRIMARY KEY (`codpromo`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `promoferias` ( `codferias` int(11) unsigned NOT NULL auto_increment, `dataferias` date default NULL, PRIMARY KEY (`codferias`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `promoqq` ( `codpromoqq` int(11) unsigned NOT NULL auto_increment, `datapromoqq` date default NULL, `qq` int(2) unsigned default NULL, PRIMARY KEY (`codpromoqq`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `quinquenio` ( `codqq` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `qq` int(2) unsigned NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) unsigned NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codqq`), KEY `codper` (`codper`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `responsavel` ( `codresp` int(11) unsigned NOT NULL auto_increment, `nome` varchar(60) NOT NULL, `codposto` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`codresp`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE `tempointegral` ( `codti` int(10) unsigned NOT NULL, `incidencia` varchar(40) collate latin1_general_ci NOT NULL, `porcentagem` float(10,2) unsigned NOT NULL, `codper` int(10) NOT NULL, `beneficiario` varchar(50) collate latin1_general_ci NOT NULL, PRIMARY KEY (`codti`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; CREATE TABLE `usuario` ( `coduser` int(11) unsigned NOT NULL auto_increment, `login` varchar(20) NOT NULL, `senha` varchar(100) NOT NULL, `admin` int(1) unsigned zerofill NOT NULL default '0', PRIMARY KEY (`coduser`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 13, 2008 Exemplo 1: Quero saber quanto um funcionario de função "A", com 15 anos de casa, ganhou de jan/2000 a dez/2001. Se eu logar em outra máquina e fizer uma consulta diferente ao mesmo tempo. Exemplo 2: Quanto um funcionário de função "B", com 20 anos de casa, ganhou de mar/2005 a dez/2007. O que acontece que antes da consulta ao banco os dados das informações estou se misturando. espere um pouco.. como assim estão se misturando ?? sessões de conexao são unicas pra cada acesso a nao ser que você grave dados como globais Compartilhar este post Link para o post Compartilhar em outros sites
afbartels 0 Denunciar post Postado Junho 13, 2008 Quando 2 usuarios estão fazendo uma pesquisa ao mesmo tempo no sistema, cada um em uma máquina diferente, o resultado da pesquisa esta se misturando. Ex. Pesquisa do usuário 1: Salário do Funcionário A, com 15 anos de casa no período de 2001 a 2005. Pesquisa do usuário 2: Salário do Funcionário B, com 10 anos de casa no período de 2006 a 2008. Resultado: Os dados de entrada estão se misturando. Ocorre o seguinte resultado: Salário do Funcionário B, com 15 anos no período de 2001 a 2005. Como estou fazendo? Quando seleciono os dados para a pesquisa, eles são carregados na mesma página via POST. O que esta acontecendo? Quando o usuário 1 faz a sua consulta parece que os dados que são passados nas variáveis não são apagados. Aí, quando o usuário 2 faz a sua consulta os dados da consulta do usuário 1 são in seridos na consulta do usuário 2. Espero ter explicado melhor. Como posso resolver isso? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 13, 2008 ainda nao entendi como que você conseguiu fazer fazer essa bagunça ? por exemplo, na prática seria como se eu estive na tailândia e entrasse num website. Você está no méxico e entra no site no mesmo momento e faz uma busca que acaba se misturando com os meus dados. não estou entendendo como você fez isso. Compartilhar este post Link para o post Compartilhar em outros sites
Leandro Senni 1 Denunciar post Postado Junho 13, 2008 as magicas da programacao.. manda o CODIGO pra ver q tem nisso ai... você esta usando session_id ou session?? e nao tem como você fazer a consulta em somente 1 pagina? tipode.. select * from ___ where tabela = '$valor', ... ??? Compartilhar este post Link para o post Compartilhar em outros sites
afbartels 0 Denunciar post Postado Junho 16, 2008 É hinom, seria isso mesmo. Essa bagunça toda é causada pela inesperiência mesmo. Mas é assim, tem que errar pra aprender. Leandro, eu estou usando session(). Andei procurando aqui e não entendi muito bem a diferença de session e session_id, principalmente sua figuração no código. Será que é isso meu problema? Abaixo segue o código do login. <?php session_start(); ?> <html xmlns="http://www.w3.org/1999/xhtml"> <body> <? include "../basededados/conexaomysql.php"; // Conecta ao banco de dados //Recebe o login e senha do formulario $login = $_POST["login"]; $senha = $_POST["senha"]; $resultado = mysql_query("SELECT * FROM usuario WHERE login = '$login' AND senha = password('$senha')",$id); $linhas = mysql_num_rows($resultado); $dados = mysql_fetch_array($resultado); //Se existir redireciona para a página das consultas se não fica na mesma página if( $linhas > 0 ) { $_SESSION["user"] = $dados["login"]; $_SESSION["logado"] = "SIM"; $_SESSION["status"] = $dados["admin"]; echo "<script>location.href = '../cprom.php';</script>"; } else echo "<script> java script:history.go(-1) </script>"; ?> </body> </html> Próxima página <? session_start(); ?> <html> <head> Funções JavaScript </head> <body> if ($_SESSION["logado"] != "SIM") { echo "<script>location.href = 'login/naoLogado.php';</script>"; } //Recebe os dados da tela anterior $data1 = $_POST['data1']; $data2 = $_POST['data2']; $insere = $_POST['insere']; if ($insere == 1){ //Recebe os dados para inserção $datap = $_POST['datapromo']; $datapromo = implode("-", array_reverse(explode("/", $datap))); $codpc = $_POST['selectPstCargo']; $codc = $_POST['selectCurso']; //Verifica quantas tuplas existem na tabela para inserir o codigo $sqlConsultaPromo = mysql_query("SELECT MAX(codpromo) FROM promocao"); $funcResultPromo = mysql_fetch_array ($sqlConsultaPromo); $numLin = $funcResultPromo[0]; //Consulta quantas tuplas existem na tabela com a mesma data $sqlConsultaPromo = mysql_query("SELECT * FROM promocao WHERE '$datapromo' <= datapromo",$id); $numRowPromo = mysql_num_rows($sqlConsultaPromo); //Verifica se a data da promoção esta no intervalo a ser pesquisado $compdata1 = ComparaDatas($data1,$datap); $compdata2 = ComparaDatas($data2,$datap); //Seta como 1 ou -1 se as datas pesquisadas forem as extremas (as pontas do intervalo pesquisado) if ($compdata1 == 0) { $compdata1 = 1;} if ($compdata2 == 0) { $compdata2 = -1;} //Grava no banco de dados as promoções if (($numRowPromo == 0)&&($compdata1 == 1)&&($compdata2 == -1)){ $numLin++; $sqlInsere = mysql_query("INSERT INTO promocao (codpromo,datapromo,pstgrd,curso) VALUES ('$numLin','$datapromo','$codpc','$codc')",$id); } $insere = 0; } ?> <form action="" method="post" name='form1' id="form1"> .... Campos do formulário para inserção dos dados da pesquisa.... </form> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 17, 2008 hum.. pelo que vejo no codigo, naot em nada parentemente anormal. acho que você nao está sabendo explicar qual o problema e estamos tentando ajudar com soluções que nao tem nada a ver. se puder, explique novamente. Compartilhar este post Link para o post Compartilhar em outros sites
afbartels 0 Denunciar post Postado Junho 17, 2008 hinom, vamos partir pra prática então. acesse o link www.ciklos.com.br Abra o mesmo link outra vez, para simular um segundo usuário, e faça o seguinte teste. No primeiro entre com: usuário: user senha: 123 No segundo entre com: usuário: user2 senha: 123 Agora passemos para a pesquisa: No primeiro escolha o período: Data Inicial: 1/1/2000 Data Final: 31/1/2000 e clique em "Avançar" No segundo escolha o período: Data Inicial: 1/1/2002 Data Final: 31/1/2002 e clique em "Avançar" Agora vamos escolher a graduação do funcionário No primeiro insira a Data da Promoção, Posto/Graduação e Curso(note que a data da promoção já vem preenchida) Data da Promoção: 1/1/2000 Posto Graduação: 1º Ten Curso : CFO clique no sinal de "+" ao lado. Os dados escolhidos aparecerão logo acima. Agora passe para o segundo link. Preencha novamente os campos acima, só que com outros dados. Data da Promoção: 1/1/2002 Posto Graduação: Cb Curso : CFC/CIFC clique no sinal de "+" ao lado. É neste ponto que eu estou com problema. Note que irá aparecer os dados da consulta feita e do primeiro link, ou seja, do 1º usuário. E o certo seria aparecer somente do 2º usuário. O que eu acho que está acontecendo é que, quando é carregado a página para a consulta do 2º usuário, os dados que são passados por POST não estou sendo apagados. Aí acontece essa bagunça toda. Espero ter explicado melhor agora. Compartilhar este post Link para o post Compartilhar em outros sites
CAUADS 0 Denunciar post Postado Junho 17, 2008 Cara, acessei seu sistema, e você está inserindo no BD as informações quando o cara clica no sina de + verde, não é isso?? Então, se for na mesma tabela, com certeza todo mundo que entrar no sistema durante a execução vai ver os dados que os outros estão inserindo na mesma hora. Para evitar isso, manipule os dados com SESSION até o final das páginas ao enves de entrar no BD, ou, coloque mais um campo na tabela informando o ID da SESSAO do cara, e no SELECT, você poe como paramento somente ler os dados que forem inseridos pela sessao atual. Entendeu +-?? ah! e por favor, tire esse alert do campo de datas onBlur, pq você "prende"o usuario na página até ele digitar uma página válida, use o onClick no botão para validar isso. Compartilhar este post Link para o post Compartilhar em outros sites