Ir para conteúdo
Fórum Script Brasil

BetoGroo

Membros
  • Total de itens

    43
  • Registro em

  • Última visita

Tudo que BetoGroo postou

  1. Pessoal Estou terminando minha pós graduação em Administração de Banco de Dados com foco em Oracle. Gostaria de idéias para um artigo, pois para a conclusão devo criar um. Qualquer sugestão é bem vinda! Obrigado!
  2. Denis, muito obrigado pela ajuda! Na verdade, eu usaria o cursor em um event, mas para fim de testes, comecei em uma procedure. O problema é que eu realmente compliquei. Não precisava nem de cursor. A vantagem é que e aprendi a usar cursor, porém, neste caso, não é mesmo necessário. Meu evento ficou assim: DELIMITER $$ USE banco $$ CREATE EVENT EV_validadeMP ON SCHEDULE EVERY 15 MINUTE DO BEGIN update mandado set id_situacao = 2 where validade < CURDATE() AND id_situacao = 1; END$$ Acha que executar este update a cada 15 minutos compromete o desempenho do banco? Um Abraço, e muito obrigado!
  3. Olá! Preciso de uma procedure que teste cada linha de uma table (mandado) e se o campo validade for menor que a data atual, o campo situação atualizará para 2. depois de pesquisas, cheguei ao seguinte código, utilizando cursor: DELIMITER $$ USE delpol $$ CREATE PROCEDURE datamp() BEGIN DECLARE done int default 0; DECLARE vencimento date; declare cursor_mp CURSOR FOR SELECT validade from mandado; DECLARE continue handler for not found set done = 1; open cursor_mp; loop_mp: LOOP FETCH cursor_mp into vencimento; if done = 1 then leave loop_mp; end if; if vencimento < CURDATE() THEN update mandado set id_situacao = 2; END IF; end LOOP loop_mp; END $$ Porém, ele atualiza todas as linhas da tabela, quando que era par atualizar somente as com o prazo de validade vencido. Eis minha table mandado: CREATE TABLE IF NOT EXISTS `delpol`.`mandado` ( `protocolo` INT(6) NOT NULL AUTO_INCREMENT , `id_reu` INT NOT NULL , `id_processo` INT NOT NULL , `validade` DATE NULL , `recebimento` DATE NULL , `observacoes` MEDIUMTEXT NULL , `id_situacao` INT NOT NULL , PRIMARY KEY (`protocolo`, `id_reu`, `id_processo`) , INDEX `fk_reu_processo_reu1` (`id_reu` ASC) , INDEX `fk_reu_processo_processo1` (`id_processo` ASC) , INDEX `fk_mandado_situacao1` (`id_situacao` ASC) , CONSTRAINT `fk_reu_processo_reu1` FOREIGN KEY (`id_reu` ) REFERENCES `delpol`.`reu` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_reu_processo_processo1` FOREIGN KEY (`id_processo` ) REFERENCES `delpol`.`processo` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_mandado_situacao1` FOREIGN KEY (`id_situacao` ) REFERENCES `delpol`.`situacao` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB Desde já agradeço!
  4. Olá! Tenho a seguinte estrutura: A tabela cidade contém todas as cidades cadastradas. As cidades que possuem apenas um cep, o mesmo está no campo cep. Já as cidades que possuem mais de um cep, o mesmo está com valor 0. A tabela enderecos contem o nome das ruas e o campo cep. o que eu queria era fazer uma consulta por cep e me retornasse o endereco, cidade e estado, e se fosse em uma ciade com apenas um cep, me retornava o nome da cidade e estado. Muito obrigado!
  5. Galera, achei a resposta! Basta usar o método live do jQuery que dá certo!
  6. Olá! Meu script jQuery funciona apenas na primeira vez que eu clico. Na segunda não acontece nada. Com o firebug, na primeira vez, ele me retorna certinho so dados do post, os dados são inseridos no banco, e minha tabela atualiza. Porém, na segunda vez que eu clico nada acontece. Eis o script: ... $(".btnEncerraTalao").click(function(){ var idTalao = $(this).attr("id"); var tipoAcao = $("#tipoAcaoEncerra_"+idTalao).val(); var kmFinal = $("#txtKmFinal_"+idTalao).val(); alert(idTalao + tipoAcao + kmFinal); $.ajax({ type: "POST", url: "talao.php", data:{ idTalao:idTalao, tipoAcao:tipoAcao, txtKmFinal:kmFinal }, success: function(r){ $("#retorno").html("Carregando"); $("#retorno").html(r); } }) //return false; });//FIM FECHA TALAO Lembrando que o novo formulário estará no retorno. Abraço!
  7. Muito obrigado Denis. Me tira uma outra dúvida a respeito de desempenho. Eu tenho uma tabela onde devo cadastrar funcionários. É obrigatório o cadastro do CPF. Uso o CPF como chave primária, ou o bom e velho id ???? Abraço!
  8. Olá Denis. Este esquema eu já uso. A minha dúvida mesmo é se é viável usar o campo 'date' como chave. Me refiro a desempenho, etc.!
  9. Olá! Tenho uma tabela processo, e nesta contém uma referência a uma outra tabela usuario. Quero gerar uma numeração para os processos. Gostaria de saber se é viável acrescentar um campo date na chave composta, de modo que a numeração dos meus processos ficassem assim: 00120100316001 00120100317002 00220100316001 e assim por diante. onde: id_processo id_usuario data_cadastro Obrigado
  10. Mas espere! Na questão você diz que quer decrescente. E N listagem você mostrou crescente! Resolve aí!
  11. O Tiago Rigo, em seu blog, elaborou uma matéria que faz o que eu queria. MySQL - Event Se alguém tiver algo a acrescentar será muito útil.
  12. Olá Dênis! Obrigado pela dica, vou me informar e posto os resultados aqui!
  13. Olá! Gostria de saber se há uma maneira de se fazer um INSERT automático no banco, pelo MySql. Seria mais ou menos assim: Diariamente, os usuários têm que cadastrar uma estatística, com vários campos. Eles têm até as 08:00 da manha para fazer isso. Se passar das 08:00, e ele não fizer, automaticamente tem que ser cadastrada a estatística daquele dia, com todos os dados negativos, e o usuário de plantão do dia como responsável. Em um servidor Apache no Linux, sei de uma maneira, usando o crontab, porém, gostaria de saber se tem alguma solução através do MySql! Um abraço!
  14. BetoGroo

    Views no MySql

    Olá! Gostaria de opiniões, principalmente dos mais experientes: Quais são as vantagens e desvantagens de se usar views? Um abraço!
  15. Olá! Estou começando agora com PHP, e gostaria postar um script. É um script simples, para upload de imagens. Vou incrementando dia a dia. Farei ainda tratamento de erros, e criar a miniatura quadrada, sem distorção Por favor, comentem, critiquem, e deem dicas. 28/08/2009 -> Sobe a imagem, compacta, cria miniatura e grava dados em banco de dados. 23/08/2009 -> Apenas sobe e renomeia a imagem. index.php <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Upload de múltiplas imagens</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <fieldset><legend>Upload de Imagens</legend> <?php for ($i=0; $i<3; $i++){ ?> <input name="arquivo[]" id="arquivo[]" type="file" /> <br /> <?php } ?> <input type="submit" name="button" id="button" value="Enviar" /> </fieldset> </form> </body> </html> Upload.class.php <?php class Upload{ var $qtd; var $imagem; var $dir; var $dirMini; var $tamanho; function __construct($qtd, $imagem, $dir, $tamanho){ $this->qtd = $qtd; $this->imagem = $imagem; $this->dir = $dir; $this->dirMini = $dir . 'mini/'; $this->tamanho = $tamanho; self::tipoImagem(); self::nomeImagem(); } function gethash(){ for($i=0; $i<$this->qtd; $i++){ $this->imagem['hash'][$i] = md5_file($this->dir.$this->imagem['nome'][$i]); } } function getDimensao(){ for ($i=0; $i<$this->qtd; $i++){ $dimensao[$i] = getimagesize($this->dir.$this->imagem['nome'][$i]); $this->imagem['largura'][$i] = $dimensao[$i][0]; $this->imagem['altura'][$i] = $dimensao[$i][1]; if($this->imagem['largura'][$i] > $this->imagem['altura'][$i]){ $this->imagem['novaLargura'][$i] = $this->tamanho; $this->imagem['novaAltura'][$i] = $this->tamanho*$this->imagem['altura'][$i]/$this->imagem['largura'][$i]; }else{ $this->imagem['novaAltura'][$i] = $this->tamanho; $this->imagem['novaLargura'][$i] = $this->tamanho*$this->imagem['largura'][$i]/$this->imagem['altura'][$i]; } } } function nomeImagem(){ for ($i=0; $i<$this->qtd; $i++){ $this->imagem['nome'][$i] = date('YmdHis') . "_" . substr(md5(time() * rand(1,9999) * rand(1,999)),0,14). $this->imagem['tipo'][$i]; } } function tipoImagem(){ for ($i=0; $i<$this->qtd; $i++){ switch ($this->imagem['type'][$i]){ case 'image/jpeg': $this->imagem['tipo'][$i] = '.jpg'; break; case 'image/pjpeg': $this->imagem['tipo'][$i] = '.jpg'; break; case 'image/gif': $this->imagem['tipo'][$i] = '.gif'; break; case 'image/bmp': $this->imagem['tipo'][$i] = '.bmp'; break; case 'image/png': $this->imagem['tipo'][$i] = '.png'; break; } } } function enviaImagem(){ for ($i=0; $i<$this->qtd; $i++){ move_uploaded_file ($this->imagem['tmp_name'][$i], $this->dir . $this->imagem['nome'][$i]); copy($this->dir . $this->imagem['nome'][$i], $this->dirMini . $this->imagem['nome'][$i]); } } function criaImagem(){ for ($i=0; $i<$this->qtd; $i++){ $novaImagem[$i] = imagecreatetruecolor($this->imagem['novaLargura'][$i], $this->imagem['novaAltura'][$i]); $origem[$i] = imagecreatefromjpeg($this->dir.$this->imagem['nome'][$i]); imagecopyresized($novaImagem[$i], $origem[$i], 0,0,0,0, $this->imagem['novaLargura'][$i], $this->imagem['novaAltura'][$i], $this->imagem['largura'][$i], $this->imagem['altura'][$i]); imagejpeg($novaImagem[$i], $this->dir . $this->imagem['nome'][$i],80); } } function criaMini(){ for ($i=0; $i<$this->qtd; $i++){ $novaImagem[$i] = imagecreatetruecolor(100, 100); $origem[$i] = imagecreatefromjpeg($this->dirMini.$this->imagem['nome'][$i]); imagecopyresized($novaImagem[$i], $origem[$i], 0,0,0,0, 100, 100, $this->imagem['largura'][$i], $this->imagem['altura'][$i]); imagejpeg($novaImagem[$i], $this->dirMini . $this->imagem['nome'][$i],80); } } function InsereBanco(){ $conn = new PDO('mysql:host=localhost; dbname=upload', 'root', ''); for($i=0; $i<$this->qtd; $i++){ $conn->exec("INSERT INTO imagem (url_imagem, url_mini, hash_imagem) VALUES ('{$this->dir}{$this->imagem['nome'][$i]}', '{$this->dirMini}{$this->imagem['nome'][$i]}', '{$this->imagem['hash'][$i]}')"); } } } ?> upload.php <?php function __autoload($classe){ include_once "{$classe}.class.php"; } $img = new Upload(3, $_FILES['arquivo'], 'images/', 400); $img->enviaImagem(); $img->gethash(); $img->getDimensao(); $img->criaImagem(); $img->criaMini(); $img->insereBanco(); ?> banco.sql CREATE DATABASE `upload` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; USE `upload`; CREATE TABLE IF NOT EXISTS `imagem` ( `id_imagem` int(11) NOT NULL AUTO_INCREMENT, `url_imagem` varchar(50) COLLATE utf8_bin NOT NULL, `url_mini` varchar(50) COLLATE utf8_bin DEFAULT NULL, `hash_imagem` char(32) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id_imagem`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin ?> Um abraço a todos!
  16. Muito obrigado, não havia pensado nisso!
  17. Olá! Estou desenvolvendo um esquema, em que o usuário sobe várias fotos ao mesmo tempo. Porém, eu queria renomear as fotos, ignorando o nome original. No caso de subir um arquivo de cada vez, estava renomeando com time(), porém, com vários arquivos ao mesmo tempo, repete o nome, e os arquivos são sobrescritos. Pensei em usar o microtime(). Alguém tem uma ideia melhor? Desde já agradeço!
  18. Olá!! Comecei a aprender PHP Orientado a Objetos, e gostaria de saber se, deve ser feito algo especial em relação à modelagem de dados, ou se, posso utilizar o mesmo banco que eu já vinha usando! Um abraço!
  19. A maneira como o jonathan expôs me ajudou muito! Por enquando são apenas dois radios, que serão usados para filtrar dados de uma tabela do banco de dados. Tipo um para exibir todos os registros do dia, outro para exibir alguma outra caractecterística, por exemplo. Muito obrigado a todos!
  20. Nossa! Valeu pela resposta rápida! Até deu certo, porém eu tenho mais de um radio! Como proceder?
  21. Olá! Gostaria de saber se tem como enviar um form através de um radio button, ao invés do tradicional submit! Um abraço!
  22. BetoGroo

    Dúvida sobre desempenho

    Muito obrigado pelas informações!
×
×
  • Criar Novo...