Ir para conteúdo
Fórum Script Brasil

Felipe Gusmão

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre Felipe Gusmão

Felipe Gusmão's Achievements

0

Reputação

  1. Olá pessoal. Preciso de ajuda. Estou tentando fazer uma escala de serviço, acho um pouco complexa e estou indo por partes. tenho a seguinte tabela: pessoas_profissoes +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + id | profissao_a | profissao_b | profissao_c + +-------|---------------|---------------|---------------+ + 1 | joao | luan | miguel + + 2 | alexandre | fernando | ricardo + + 3 | joaquim | costa | felipe + + 4 | miguel | | mathias + + 5 | henrique | | + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ e outra seguinte tabela: servico +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + data | profi_a | profi_b | profi_c + +---------------|---------------|---------------|---------------+ + 2014-11-15 | | | + + 2014-11-16 | | | + + 2014-11-17 | | | + + 2014-11-18 | | | + + 2014-11-19 | | | + + 2014-11-20 | | | + + 2014-11-21 | | | + + 2014-11-22 | | | + + 2014-11-23 | | | + + 2014-11-24 | | | + + 2014-11-25 | | | + + 2014-11-26 | | | + + 2014-11-27 | | | + + 2014-11-28 | | | + + 2014-11-29 | | | + + 2014-11-30 | | | + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Quero atualizar os campos 'profi_a' da tabela 'servico' com os dados do campo 'profissao_a' da tapela 'pessoas_profissoes'. Eu consigo atualizar os dados parcialmente, mais eu quero que faça algo a mais, que vou explicar a seguir. Por enquanto estou usando o seguinte código (para uma só profissão), que está dando certo. mysql_query ("UPDATE dados set profi_a=(SELECT profissao_a FROM pessoas_profissoes WHERE id=1) WHERE data='2014-11-15'") or die(mysql_error());; Está funcionando perfeitamente. Porém, desejo que atualize da seguinte forma: o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=1' na data 2014-11-15 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=2' na data 2014-11-16 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=3' na data 2014-11-17 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=4' na data 2014-11-18 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=5' na data 2014-11-19 Neste momento, quando terminar a ultima pessoa do campo 'profissao_a', então ele da um loop para o início, inserindo o primeiro novamente, ficando assim: o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=1' na data 2014-11-20 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=2' na data 2014-11-21 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=3' na data 2014-11-22 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=4' na data 2014-11-23 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=5' na data 2014-11-25 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=1' na data 2014-11-26 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=2' na data 2014-11-27 etc... ficando a tabela mais ou menos assim: servico +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + data | profi_a | profi_b | profi_c + +---------------|---------------|---------------|---------------+ + 2014-11-15 | joao | | + + 2014-11-16 | alexandre | | + + 2014-11-17 | joaquim | | + + 2014-11-18 | miguel | | + + 2014-11-19 | henrique | | + + 2014-11-20 | joao | | + + 2014-11-21 | alexandre | | + + 2014-11-22 | joaquim | | + + 2014-11-23 | miguel | | + + 2014-11-24 | henrique | | + + 2014-11-25 | joao | | + + 2014-11-26 | alexandre | | + + 2014-11-27 | joaquim | | + + 2014-11-28 | miguel | | + + 2014-11-29 | henrique | | + + 2014-11-30 | joao | | + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Minha intenção é fazer isso com todas as profissões, mas vamos por partes, uma coisa de cada vez. Como é possível fazer isso com php? Alguém pode me ajudar?
  2. Olá pessoal. Preciso de ajuda. Estou tentando fazer uma escala de serviço, acho um pouco complexa e estou indo por partes. tenho a seguinte tabela: pessoas_profissoes +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + id | profissao_a | profissao_b | profissao_c + +-------|---------------|---------------|---------------+ + 1 | joao | luan | miguel + + 2 | alexandre | fernando | ricardo + + 3 | joaquim | costa | felipe + + 4 | miguel | | mathias + + 5 | henrique | | + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ e outra seguinte tabela: servico +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + data | profi_a | profi_b | profi_c + +---------------|---------------|---------------|---------------+ + 2014-11-15 | | | + + 2014-11-16 | | | + + 2014-11-17 | | | + + 2014-11-18 | | | + + 2014-11-19 | | | + + 2014-11-20 | | | + + 2014-11-21 | | | + + 2014-11-22 | | | + + 2014-11-23 | | | + + 2014-11-24 | | | + + 2014-11-25 | | | + + 2014-11-26 | | | + + 2014-11-27 | | | + + 2014-11-28 | | | + + 2014-11-29 | | | + + 2014-11-30 | | | + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Quero atualizar os campos 'profi_a' da tabela 'servico' com os dados do campo 'profissao_a' da tapela 'pessoas_profissoes'. Eu consigo atualizar os dados parcialmente, mais eu quero que faça algo a mais, que vou explicar a seguir. Por enquanto estou usando o seguinte código (para uma só profissão), que está dando certo. UPDATE dados set profi_a=(SELECT profissao_a FROM pessoas_profissoes WHERE id=1) WHERE data='2014-11-15'") or die(mysql_error());; Está funcionando perfeitamente. Porém, desejo que atualize da seguinte forma: o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=1' na data 2014-11-15 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=2' na data 2014-11-16 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=3' na data 2014-11-17 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=4' na data 2014-11-18 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=5' na data 2014-11-19 Neste momento, quando terminar a ultima pessoa do campo 'profissao_a', então ele da um loop para o início, inserindo o primeiro novamente, ficando assim: o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=1' na data 2014-11-20 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=2' na data 2014-11-21 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=3' na data 2014-11-22 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=4' na data 2014-11-23 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=5' na data 2014-11-25 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=1' na data 2014-11-26 o campo 'profi_a' com os dados do campo 'profissao_a' do 'id=2' na data 2014-11-27 etc... ficando a tabela mais ou menos assim: servico +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + data | profi_a | profi_b | profi_c + +---------------|---------------|---------------|---------------+ + 2014-11-15 | joao | | + + 2014-11-16 | alexandre | | + + 2014-11-17 | joaquim | | + + 2014-11-18 | miguel | | + + 2014-11-19 | henrique | | + + 2014-11-20 | joao | | + + 2014-11-21 | alexandre | | + + 2014-11-22 | joaquim | | + + 2014-11-23 | miguel | | + + 2014-11-24 | henrique | | + + 2014-11-25 | joao | | + + 2014-11-26 | alexandre | | + + 2014-11-27 | joaquim | | + + 2014-11-28 | miguel | | + + 2014-11-29 | henrique | | + + 2014-11-30 | joao | | + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Minha intenção é fazer isso com todas as profissões, mas vamos por partes, uma coisa de cada vez. Alguém pode me ajudar?
  3. Denis Courcy, obrigado. Vou ler sobre "storage procedure". Flechaus, rsrs... vou te falar o objetivo. Existe uma escala de serviço militar que dá muito trabalho fazer de forma manual. Funciona da seguinte maneira. Existem 3 profissões que dão serviço por dia. Ou seja, por dia deve ter 1 militar de serviço de uma determinada profissão. O serviço é dividido em horário. Existem 3 horários: 04 as 08, 08 as 12 e 12 as 16. Cada um dos 3 militares de serviço do dia fica em um determinado horário. O problema disso tudo é que se um militar estava de serviço na segunda-feira de 04-08, vamos supor que seu próximo serviço seja na sexta-feira, ele não poderá ficar no horário anterior que ele estava de serviço, ou seja, não poderá estar no mesmo horário de 04-08, tem que estar em um horário diferente. Isso quando possível. As vezes tem 3 militares de profissões diferentes que estão de serviço no mesmo dia e que o último horário dos três militares é o de 04-08, e aí alguém terá que repetir o horário de qualquer forma. Consegui realizar o que quero interagindo mysql com php, porém funciona apenas com 1 militar. Distribui o horário corretamente. Estou estudando os códigos para ver o que posso fazer para realizar comparações com horários de outros militares. Sendo que como estou começando a fuçar em programação agora, está difícil pacas. Estou a 3 dias tentando achar uma ideia. rs... O que fiz até agora está no código que se segue: <html> <head> <title> Exibindo conteudo da tabela militar </title> <meta http_equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php require("conexao.php"); ini_set( 'display_errors', true ); error_reporting( E_ALL ); $id = 3; $consultaa = mysql_query("select a from mil where id='$id'"); $cona = mysql_fetch_array($consultaa); $consultab = mysql_query("select b from mil where id='$id'"); $conb = mysql_fetch_array($consultab); $consultac = mysql_query("select c from mil where id='$id'"); $conc = mysql_fetch_array($consultac); $consulta = mysql_query("select ultimo from mil where id='$id'"); $linha = mysql_fetch_array($consulta); if (( $linha['ultimo'] == 'C' ) and ( $cona['a'] <= $conb['b'] )){ mysql_query ("UPDATE mil SET ultimo='A', A=A+1 WHERE ID='$id' AND ultimo<>'A'") or die(mysql_error());; echo "ALTEROU 08-12<br />"; } elseif (( $linha['ultimo'] == 'C' ) and ( $conb['b'] <= $cona['a'] )){ mysql_query ("UPDATE mil SET ultimo='B', B=B+1 WHERE ID='$id' AND ultimo<>'B'") or die(mysql_error());; echo "ALTEROU 12-16<br />"; } elseif (( $linha['ultimo'] == 'A' ) and ( $conb['b'] <= $conc['c'] )){ mysql_query ("UPDATE mil SET ultimo='B', B=B+1 WHERE ID='$id' AND ultimo<>'B'") or die(mysql_error());; echo "ALTEROU 12-16<br />"; } elseif (( $linha['ultimo'] == 'A' ) and ( $conc['c'] <= $conb['b'] )){ mysql_query ("UPDATE mil SET ultimo='C', C=C+1 WHERE ID='$id' AND ultimo<>'C'") or die(mysql_error());; echo "ALTEROU 16-20<br />"; } elseif (( $linha['ultimo'] == 'B' ) and ( $cona['a'] <= $conc['c'] )){ mysql_query ("UPDATE mil SET ultimo='A', A=A+1 WHERE ID='$id' AND ultimo<>'A'") or die(mysql_error());; echo "ALTEROU 08-12<br />"; } elseif (( $linha['ultimo'] == 'B' ) and ( $conc['c'] <= $cona['a'] )){ mysql_query ("UPDATE mil SET ultimo='C', C=C+1 WHERE ID='$id' AND ultimo<>'C'") or die(mysql_error());; echo "ALTEROU 16-20<br />"; } require("proximo.php"); ?> </body> </html>
  4. Olá galera, boa noite... Sou novo aqui Estava caçando fórum pois preciso de ajuda... Esperam que consigam me ajudar Tenho um banco ('xtudo') com uma simples tabela ('teste') com as seguintes colunas ('nome'[var], 'A'[iNT], 'B'[iNT], 'C'[iNT]) Como faço para fazer uma comparação, ou seja, verificar entre 'A', 'B', e 'C', qual possui o menor valor. Após verificar, caso haja mais de uma coluna com o menor valor, escolher uma coluna entre as menores e acrescentar +1 ao valor já existente na coluna, caso não haja mais que uma coluna com o menor valor, então acrescenta +1 ao valor já existente na coluna que possui menor valor. Escolher a coluna que não tenha sido incrementada (+1) na ultima verificação. ex: primeira incrementação = 1º primeira incrementação = 2º ...etc ... vamos ao exemplo: NOME A B C INÍCIO felipe 1 1 1 1º - felipe 1 1 2 (valores de início iguais, então escolhe um valor aleatorio, no caso escolheu C aleatoriamente e incrementou +1) 2º - felipe 2 1 2 (comparou, viu quais os valores menores, dentre A e B escolheu um valor aleatório, no caso, A e incrementou +1) 3º - felipe 2 2 2 (comparou, viu que B possuia menor valor e incrementou +1) 4º - felipe 3 2 2 (comparou todos os valores, todos os valores eram iguais, então escolheu um valor aleatório que não tenha sido o último escolhido, que no caso foi B, então escolheu entre A e C, no caso escolheu A) 5º - felipe 3 3 2 (comparou todos os valores, viu que B e C eram iguais, escolheu um aleatório, já que o último escolhido (A) não estava entre os menores valor, e o escolhido aleatoriamente foi "B") .... ....
×
×
  • Criar Novo...