Pular para o conteúdo principal

Postagens

Mostrando postagens de novembro, 2012

Como fazer uma SQL para buscar os períodos de tempo que coincidem com um novo período?

Existem tabelas que controlam períodos de utilização, como aluguéis ou viagens, onde há um campo para a data inicial e outra para a final. Nestes casos, é muito comum se verificar, ao inserir um novo item, se este coincide com algum já cadastrado. Para isso execute a SQL abaixo adaptada ao seu caso: select id, dt_hr_saida, dt_hr_chegada from viagem where dt_hr_chegada > 'dt_hr_saida_novo' and dt_hr_saida < 'dt_hr_chegada_novo' Esta SQL irá retornar todos os períodos coincidentes. Veja que usei o maior e menor, pois as pontas podem coincidir, mas não se cruzar. Se o seu caso não pode nem coincidir então utilize >= e <=. Se na edição do dado deseja saber se vai bater com outro período execute a SQL abaixo adaptada ao seu caso: select id, dt_hr_saida, dt_hr_chegada from viagem where dt_hr_chegada > 'dt_hr_saida_editando' and dt_hr_saida < 'dt_hr_chegada_editando' and id <> id_editando É isso aí....

date.timezone do Brasil

Caso alguém precise configurar o php.ini de acordo com sua região, abaixo a relação de date.timezone existentes no Brasil: America/Manaus America/Rio_Branco America/Sao_Paulo America/Porto_Acre America/Recife America/Belem America/Cuiaba America/Noronha America/Bahia America/Porto_Velho America/Fortaleza America/Boa_Vista America/Campo_Grande America/Maceio

Descobrir o estado de origem tendo a placa do veículo

Fiz uma função que retorna a UF de origem da placa. Ela não garante que a UF seja a atual, pois quando um veículo é transferido para outro estado o número da placa se mantém, alterando apenas a cidade e UF. /**  * Retorna a sigla de origem da UF da placa  * @return string UF  */ function getUFPlaca($nr_placa) { $placa = fPlaca($nr_placa,2); $result = ""; if ($nr_placa >= 'AAA0001' && $nr_placa <= 'BEZ 9999') { $result = 'PR'; } else if ($nr_placa >= 'BFA0001' && $nr_placa <= 'GKI9999') { $result = 'SP'; } else if ($nr_placa >= 'GKJ0001' && $nr_placa <= 'HOK9999') { $result = 'MG'; } else if ($nr_placa >= 'HOL0001' && $nr_placa <= 'HQE9999') { $result = 'MA'; } else if ($nr_placa >= 'HQF0001' && $nr_placa <= 'HTW9999') { $result = 'MT'; } else if ($nr_p

Escapar sql e html

Felizmente nunca mais vi nenhum script com aberrações anti-sql-injection, mas há algum tempo era possível encontrar pessoas removendo palavras-chave de SQL de todas as strings que íam para o banco de dados. Se o usuário digitasse palavras como select, delete ou drop, elas eram simplesmente removidas da frase. Isso quando o programador não interrompia o script e acusava o usuário de estar tentando explorar alguma falha de segurança. Eu juro, isso existia. Ao trabalhar com PDO, a melhor opção (pra não dizer a única!) é utilizar prepare e execute pra separar a query em si dos seus parâmetros: 1 2 3 4 5 6 7 8 9 10 11 12 $conexao = new PDO( 'mysql:dbname=banco;host=localhost' , 'login' , 'senha' );     $uf = 'RJ' ; $idade = 18;     $sth = $conexao ->prepare( 'SELECT nome FROM pessoa WHERE uf = ? AND idade > ?' );     $sth ->execute( array ( $uf , $idade ));     while ( $row = $sth -&g

Submeter dados por post para uma página remota

A coisa fica mais complicada quando o desenvolvedor pensa em usar cURL pra submeter dados por POST para outro servidor. A extensão até tem seu mérito, mas usá-la apenas pra este propósito é um grande equívoco. As funções que fazem uso dos protocol wrappers aceitam um objeto de stream context, criado pela função stream_context_create, para configurar alguns aspectos do protocolo. As opções de contexto do protocolo HTTP permitem definir, entre outras coisas, o método de acesso (GET, POST, etc) e o conteúdo a ser postado: 1 2 3 4 5 6 7 8 9 10 11 12 13 $content = http_build_query( array (      'cidade' => 'Rio de Janeiro' ,      'tipo'    => 'Apartamento' , ));     $context = stream_context_create( array (      'http' => array (          'method'   => 'POST' ,          'content' => $content ,      ) ));     $contents = file_get_contents ( ' ht