Jump to content
Fórum Script Brasil

carlosinss

Membros
  • Posts

    12
  • Joined

  • Last visited

About carlosinss

carlosinss's Achievements

0

Reputation

  1. Pessoal, o colega Edinalvo conseguiu uma solução ficou assim o código. // seleciona, agrupando, os codigos de situacao $x = "SELECT cod_sitcad FROM servativ GROUP BY cod_sitcad ORDER BY cod_sitcad "; $Rsitcad = mysql_query($x); if ($Rsitcad) { $x = "SELECT excluido, cod_lot"; while ($dados = mysql_fetch_object($Rsitcad)) { $cod = $dados->cod_sitcad; $x .= ", SUM(IF(excluido = 'N' && cod_sitcad='$cod',1,0)) AS c$cod"; } $x .= " FROM servativ GROUP BY cod_lot ORDER BY SUBSTRING(cod_lot,3,2), cod_lot, cod_sitcad "; } $Rcpf = mysql_query($x); ?> <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <title>SISGEP <? echo date("d/m/Y"); ?></title> <meta name="generator" content="editplus"> <meta name="author" content=""> <meta name="keywords" content=""> <meta name="description" content=""> <link rel="stylesheet" type="text/css" href="estiloIE.css"> <script language="javascript" src="funcoes.js"></script> <script src="sorttable.js"></script> <script LANGUAGE="JavaScript"> <!-- function pinta(arg1, arg2) { if (arg1==1) arg2.style.backgroundColor = '#FFD782'; else arg2.style.backgroundColor = '#ffffff'; } //--> </SCRIPT> </head> <body topmargin=0 > <script language=JavaScript src="frames_body_array.js" type=text/javascript></script> <script language=JavaScript src="mmenu.js" type=text/javascript></script> <form action="" method="post" AUTOCOMPLETE="OFF"> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#808040" width="100%" id="AutoNumber1"> <tr> <td align='center' style='font-family:verdana; font-size:12pt'><font face="Tahoma" size="4" color="#333300">SISGEP - Sistema de Gest&atilde;o de Pessoas</font></td> </tr> <tr> <td width="100%" align='center' style='font-family:verdana; font-size:12pt'><b><font size="2">For&ccedil;a de Trabalho</font></b></td> </tr> <tr> <td align='center' style='font-family:verdana; font-size:12pt'>&nbsp;</td> </tr> </table> <tr> <table class="thin sortable draggable" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#F1F1E2" width="100%" id="AutoNumber2" > <tr bgcolor="#DBDBB7"> <td width="8%"><div align="center"><strong>Lotação</strong></div></td> <td width="25%"> <strong>Descri&ccedil;&atilde;o da lota&ccedil;&atilde;o</strong></td> <td width="6%"><div align="center"><strong>Ativos</strong></div></td> <td width="6%"><div align="center"><strong>Cedidos</strong></div></td> <td width="6%" align='center'><div align="left"></div><strong>Requisitados</strong> </td> <td width="6%" align='center'><strong>Nomeados</strong></td> <td width="6%" align='center'><strong>Ex. descentr.</strong></td> <td width="6%" align='center'><strong>Estagi&aacute;rios</strong></td> <td width="6%" align='center'><strong>Terceirizados</strong></td> <td width="6%" align='center'><strong>Militares</strong></td> <td width="11%" align='center'><strong>Total</strong></td> </tr> <? if (mysql_num_rows($Rcpf)>0) { // $sitTotal = array(); $sitTotal['c01'] = 0; // ativos $sitTotal['c08'] = 0; // cedidos $sitTotal['c03'] = 0; // requisitados $sitTotal['c14'] = 0; // requisitados $sitTotal['c04'] = 0; // nomeados $sitTotal['c18'] = 0; // exercicio descentralizado $sitTotal['c66'] = 0; // estagiarios $sitTotal['c99'] = 0; // terceirizados $sitTotal['c35'] = 0; // militares while ($qcpf = mysql_fetch_array($Rcpf)) { $sitTotal['c01'] += $qcpf['c01']; // ativos $sitTotal['c08'] += $qcpf['c08']; // cedidos $sitTotal['c03'] += $qcpf['c03']; // requisitados $sitTotal['c14'] += $qcpf['c14']; // requisitados $sitTotal['c04'] += $qcpf['c04']; // nomeados $sitTotal['c18'] += $qcpf['c18']; // exercicio descentralizado $sitTotal['c66'] += $qcpf['c66']; // estagiarios $sitTotal['c99'] += $qcpf['c99']; // terceirizados $sitTotal['c35'] += $qcpf['c35']; // militares $tot = $qcpf['c01'] + $qcpf['c08'] + $qcpf['c03'] + $qcpf['c04'] + $qcpf['c14'] + $qcpf['c18'] + $qcpf['c66'] + $qcpf['c99'] + $qcpf['c35']; $tot_geral += $tot; $pesquisa = "SELECT descricao from tabsetor where codigo = '$qcpf[cod_lot]' "; $result = mysql_query($pesquisa); $dlot = @mysql_result($result,0,0); echo " <tr onmouseover=pinta(1,this)' onmouseout='pinta(2,this)' height='18'> <td align='center'><a href='pesservidor2.php?var1=$qcpf[cod_lot]'>$qcpf[cod_lot]</a></td> <td>$dlot</td> <td width='8%' align='center'>".number_format($qcpf['c01],0,',','.')."</td> <td width='8%' align='center'>".number_format($qcpf['c08'],0,',','.')."</td> <td width=8%' align='center'>".number_format(($qcpf['c03]+$qcpf['c14']),0,',','.')."</td> <td width=8%' align='center'>".number_format($qcpf['c04],0,',','.')."</td> <td width='8%' align='center'>".number_format($qcpf['c18'],0,',','.')."</td> <td width=8%' align='center'>".number_format($qcpf['c66],0,',','.')."</td> <td width='8%' align='center'>".number_format($qcpf['c99'],0,',','.')."</td> <td width=8%' align='center'>".number_format($qcpf['c35],0,',','.')."</td> <td width='12%' align='center'>".number_format($tot,0,',','.')."</td> </tr>"; } } ?>
  2. Pessoal, preciso de uma ajuda, estou preparando um relatório que deve demonstrar o quantitativo de funcionários em cada situação por unidade de exercício. O primeiro select que fiz gera o total certo, usei o count no cpf e group by no setor de exercício, depois acresceitei situação no group by e a contagem vem certa porém a exibição repete a unidade de exercicio para cada situação e preciso que a exibição seja uma unidade de exercício por linha e as situações nas colunas. Eis o codigo: <? $x = "SELECT cod_lot, cod_sitcad, COUNT(cpf) as cpf FROM servativ GROUP BY cod_lot, cod_sitcad ORDER BY substring(cod_lot,3,2), cod_lot"; $Rcpf = mysql_query($x); ?> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#808040" width="100%" id="AutoNumber1"> <tr> <td align='center' style='font-family:verdana; font-size:12pt'><font face="Tahoma" size="4" color="#333300">SISGEP - Sistema de Gestão de Pessoas</font></td> </tr> <tr> <td width="100%" align='center' style='font-family:verdana; font-size:12pt'><b><font size="2">Força de Trabalho</font></b></td> </tr> <tr> <td align='center' style='font-family:verdana; font-size:12pt'> </td> </tr> </table> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#F1F1E2" width="100%" id="AutoNumber1"> <tr> <table class="thin sortable draggable" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#F1F1E2" width="100%" id="AutoNumber2" > <tr bgcolor="#DBDBB7"> <td width="10%"><div align="center"><strong>Lotação</strong></div></td> <td width="25%"> <strong>Descrição da lotação</strong></td> <td width="7%"><div align="center"><strong>Ativos</strong></div></td> <td width="7%" align='center'><div align="left"></div> <strong>Requisitados</strong> </td> <td width="7%" align='center'><strong>Nomeados</strong></td> <td width="7%" align='center'><strong>Ex. descentr.</strong></td> <td width="7%" align='center'><strong>Estagiários</strong></td> <td width="7%" align='center'><strong>Terceirizados</strong></td> <td width="7%" align='center'><strong>Militares</strong></td> <td width="11%" align='center'><strong>Total</strong></td> </tr> <? if (mysql_num_rows($Rcpf)>0) { while ($qcpf = mysql_fetch_array($Rcpf)) { $tot = $qcpf['cpf']; $pesquisa = "SELECT descricao from tabsetor where codigo = '$qcpf[cod_lot]' "; $result = mysql_query($pesquisa); $dlot = @mysql_result($result,0,0); echo " <tr onmouseover='pinta(1,this)' onmouseout='pinta(2,this)' height='18'> <td align='center'><a href='pesservidor2.php?var1=$qcpf[cod_lot]'>$qcpf[cod_lot]</a></td> <td>$dlot</td> <td align='center'>$tot</td> <td align='center'></td> <td align='center'></td> <td align='center'></td> <td align='center'></td> <td align='center'></td> <td align='center'></td> <td align='center'>$tot</td> </tr>"; } } ?>
  3. Pessoal, estou com um problema nesse codigo, se as variáveis $tdeb e $tcred apresentarem valores inferiores a 24:00 o resultado fica perfeito, porém as vezes os resultados são superiores a 24:00 e no calculo da diferença entre elas gera erro, por exemplo se o resultado for 36:00 em $tdeb e 06:00 em $tcred o resultado de $tohor é 06:00 e não 30:00 como deveria ser, ou seja quando passa de 24:00 ele zera e conta novamente. Como poderia resolver essa questão? Alguém pode me dar uma sugestão? $sql = mysql_query("SELECT SEC_TO_TIME( SUM(TIME_TO_SEC( jorndif ) ) ) AS total_horas FROM ponto$comp USE INDEX (siape) where oco in('00172','55555') and siape = '$mat'"); $tdeb = mysql_result($sql,0,"total_horas"); $sq = mysql_query("SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( jorndif ) ) ) AS total_horas FROM ponto$comp USE INDEX (siape) where oco = '33333' and siape = '$mat'"); $tcre = mysql_result($sq,0,"total_horas"); $hodeb = explode(":", $tdeb); $hocre = explode(":", $tcre); if($tdeb > $tcre && !empty($tcre)) { $thor = mktime ($hodeb[0] - $hocre[0], $hodeb[1] - $hocre[1], 0, 0 ); $tohor = date("H:i", $thor);
  4. Prezados colegas estou com um problema e não consigo identificar o que pode ser. Está ocorrendo o seguinte com a aplicação, uma rotina que deve inserir dados em 6 campos de uma tabela do banco de dados funciona para 39000 usuários perfeitamente, porém para 3000 faz o insert parcial, ora pula dois valores, ora pula um valor, e essa falha é aleatória não tem padrão, tem vez que é no primeiro campo, as vezes no segundo campo, muito estranho mesmo. exemplo dessa ocorrência: dia funcion entra intini intsai sai jornd jornp jorndif oco 2009-10-21 1111111 00:00:00 00:00:00 00:00:00 00:00:00 00:00 08:00 00:00 88888 0000-00-00 2222222 06:44:00 00:00:00 00:00:00 00:00:00 00:00 08:00 00:00 88888 São dois registros de funcionarios do mesmo setor realizados no mesmo dia e horario, os campos dia, funcion, entra, jornp e oco devem ser inseridos na mesma rotina, porém no primeiro não inseriu o horário de entrada no segundo não inseriu o dia, porém para vários usuários inseriu corretamente. Alguém já teve situação semelhante? O que pode ser? Desde já agradecido.
  5. Obrigado Mario, dessa forma não dá certo visto que não posso definir o codigo nem as datas que os codigos vão aparecer. Estou tentando o codigo a seguir mas ainda não retorna o que preciso conforme explicitado anteriormente, veja a seguir: $rpont = "SELECT entra, min(dia) as dtini, max(dia) as dtfin, date_format(dia, '%d/%m/%Y') as dia, sai, jornd, jornp, jorndif, oco, just FROM ponto WHERE num = '$mat' group by oco order by dia"; Nesse caso ele agrupa por codigo e me retorna como dia inicial a data correta mas a data final ele está pegando a última sem observar a ordem cronológica. traz assim: cod 00020 dtinicial 05-04-2009 dtfinal 23-04-2009 cod 00172 dtinicial 11-04-2009 dtfinal 11-04-2009 cod 00000 dtinicial 12-04-2009 dtfinal 25-04-2009 quando deveria ser assim: cod 00020 dtinicial 05-04-2009 dtfinal 08-04-2009 cod 00172 dtinicial 11-04-2009 dtfinal 11-04-2009 cod 00000 dtinicial 12-04-2009 dtfinal 17-04-2009 cod 00020 dtinicial 23-04-2009 dtfinal 23-04-2009 cod 00000 dtinicial 25-04-2009 dtfinal 25-04-2009 Veja que o codigo 00020 se repete no mes primeiro de 05 a 08/04 e depois no dia 23/04 alguma sugestão?
  6. carlosinss

    AJUDA EM SELEÇÃO

    Pessoal, estou com dificuldade de realizar o seguinte select: Selecionar a primeira e a ultima data para cada codigo existente de um funcionario na tabela ponto que é mensal obedecendo a ordem cronologica dos dias. Abaixo um exemplo de registro do funcionario 0911251 na tabela ponto: 2009-04-05 0911251 00020 NULL 2009-04-06 0911251 00020 NULL 2009-04-07 0911251 00020 NULL 2009-04-08 0911251 00020 NULL 2009-04-09 0911251 00000 NULL 2009-04-10 0911251 00020 NULL 2009-04-11 0911251 00172 NULL 2009-04-12 0911251 00000 NULL 2009-04-13 0911251 00000 NULL 2009-04-14 0911251 00000 NULL 2009-04-15 0911251 00000 NULL 2009-04-25 0911251 00000 NULL 2009-04-16 0911251 00000 NULL 2009-04-17 0911251 00000 NULL 2009-04-23 0911251 00020 NULL Para esse funcionario (0911251) deverei ter de resultado o seguinte: cod 00020 dtinicial 05-04-2009 dtfinal 08-04-2009 cod 00172 dtinicial 11-04-2009 dtfinal 11-04-2009 cod 00000 dtinicial 12-04-2009 dtfinal 17-04-2009 cod 00020 dtinicial 23-04-2009 dtfinal 23-04-2009 cod 00000 dtinicial 25-04-2009 dtfinal 25-04-2009 Alguém poderia me ajudar nessa demanda?
  7. carlosinss

    somar horas

    Pessoal estou desenvolvendo um sistema de controle de ponto que deve totalizar o numero de horas executadas (banco de horas) para utilizar posteriormente. A minha dificuldade é que ao somar as diferenças de horas executadas em cada dia o código que estou utilizando zera a contagem quando atinge 24:00, ou seja só soma até 23:59. Então como posso corrigir o código para somar até o limite mensal que é 176:00 horas. Vejam o código: $sql = mysql_query("SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( jorndif ) ) ) AS total_horas FROM ponto$comp where oco != '33333' and mat = '$mat'"); $tdeb = mysql_result($sql,0,"total_horas"); $sq = mysql_query("SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( jorndif ) ) ) AS total_horas FROM ponto$comp where oco = '33333' and mat = '$mat'"); $tcre = mysql_result($sq,0,"total_horas"); $hodeb = explode(":", $tdeb); $hocre = explode(":", $tcre); if($tdeb > $tcre) { $thor = mktime ($hodeb[0] - $hocre[0], $hodeb[1] - $hocre[1], 0, 0 ); $tohor = date("H:i", $thor); $total = "-".$tohor; $cod = '11111'; } else { $thor = mktime ($hocre[0] - $hodeb[0], $hocre[1] - $hodeb[1], 0, 0 ); $tohor = date("H:i", $thor); $total = "+".$tohor; $cod = '33333'; }
  8. Mario, muito obrigado as funções serão muito úteis. Consegui de outra forma veja como ficou, tá rodando beleza. $dia1 = conv_data($dia2);//dia de inicio vem do formulario $dia2 = conv_data($dia);//dia fim vem do formulario for($dia=$dia1; $dia<=$dia2; $dia++) { $query = "INSERT INTO ponto$compete (dia, siape, oco) VALUES ('$dia', '$mat', '$ocor')"; $result = mysql_query($query) or die("Falha no registro do ponto".mysql_error()); }
  9. Pessoal, estou com dificuldades para criar um codigo implemente insert com uso for. Tenho um formulario que transmite as variáveis $dt_ini e $dt_fim, $mat e $ocor na tabela tenho que registrar o primeiro dia e todos os dias subsequentes até o ultimo dia, o valor de $mat e $ocorr será repetido em todos os dias inseridos. :wacko:
  10. BOM DIA PESSOAL, GOSTARIA DE CONTAR COM A COLABORAÇÃO DOS COLEGAS NA SOLUÇÃO DESSA QUESTÃO, PRETENDO QUE UM ARQUIVO PHP QUE TEM FUNÇÃO DE ATUALIZAR UMA TABELA DO BANCO DE DADOS RODE AUTOMATICAMENTE A PARTIR DE UMA DETERMINADA DATA, POR EXEMPLO TODO DIA PRIMEIRO O SISTEMA DEVERÁ RODAR O ARQUIVO. TENTEI PELO AGENDAMENTO DE TAREFAS DO WINDOWS, MAS NÃO ACONTECE NADA QUANDO O RELÓGIO DA MÁQUINA ATINGE O DIA DETERMINADO.
  11. Pessoal, meus agradecimentos pela atenção e desculpas por não ter me expressado bem. Esclareço que o que pretendo fazer é exibir dados de duas tabelas em um local, sendo que isso será efetuado em duas oportunidades a primeira num campo text e a segunda num relatório para os usuários. Vejamos os códigos: Na exibição em um campo text, que é a idéia, venho atualmente exibindo usando um campo select, porém a página está pesada pois as tabelas são gigantes. AQUI PESQUISO OS DADOS DOS SERVIDORES $sql = "SELECT * FROM servidor WHERE siape='$var1'"; $result = mysql_query($sql); $wcargo = mysql_result($result,0,"catfun"); ........................................................................................ AQUI A EXIBIÇÃO DO RESULTADO PORÉM ROTINA QUE ESTÁ PESADA DE MAIS <p style="margin-top: 0; margin-bottom: 0"><font size="2" face="Tahoma">Cargo:</font></p> <p style="margin-top: 0; margin-bottom: 0"> <select class ="drop" size="1" name="wcargo <? // tabela de cargos $cargo = "select * from cargos where cod_cargo = '$wcargo'"; $rcargo = mysql_query($cargo,$link); $qualquer = mysql_result($rcargo,0,0); $query1 = "select * from cargos order by cod_cargo"; $rquery1 = mysql_query($query1); while ($campo = mysql_fetch_array($rquery1)) { echo "<OPTION VALUE=\"$campo[0]\""; if ($campo[0] == $qualquer) { echo " selected"; } echo " >$campo[0] - ".substr($campo[1],0,60)."</OPTION>"; } // Fim da tabela de cargos ?> </select> A idéia é exibir num CAMPO TEXT pois ficaria mais rápido O segundo caso é exibir num relatório, que foi o código que postei, vejamos de uma outra forma. AQUI PESQUISO NO PRIMEIRO SELECT OS DADOS DOS SERVIDORES EM DUAS TABELAS $pesquisa = "select b.siape, b.nome, b.espec, a.totpontos from servidor b inner join pontos a on a.siape = b.siape where candidato in ('S') and catfun in('435001','434001','424001','009001','032011') order by a.totpontos desc"; $result = mysql_query($pesquisa) or die("Erro: ".mysql_error()); COM A IDÉIA QUE skol ENVIOU TENTEI ACRESCENTAR MAIS ESTE SELECT $respec = "select a.espec, b.codesp, b.nomeesp from servidor a inner join tabespec b on a.espec = b.codesp"; $wespec = mysql_query($respec) or die("Erro: ".mysql_error()); ........................................... E ALTEREI ESSA ROTINA PARA CONCATENAR, PORÉM ESTÁ DANDO ERRO <? if (mysql_num_rows($result)>0) { while ($pm = mysql_fetch_array($result,$wespec)) { echo " <tr onmouseover='pinta(1,this)' onmouseout='pinta(2,this)' height='18'> <td align='center'>$pm[siape]</td> <td>&nbsp;"; echo "<b>$pm[nome]</b>"; echo " </td> <td align='center'>$pm[espec]."-".$pm[nomeesp]</td>"; echo " <td align='center'>$pm[totpontos]</td>"; } } ?></td></tr> O erro apresentador é o seguinte: Notice: Undefined index: nomeesp in c:\arquivos de programas\easyphp1-8\www\selecao\rpontosmed.php on line 92 Abraços a todos
  12. Prezados colegas do forum, esta é minha primeira participação, desde já agradeço a atenção de todos. Estou tentando exibir em um campo text de um formulário (um relatório para os usuários) os dados que constam em duas tabelas do banco de dados mysql. As tabelas são tabespec e tabservidor, o campo do formulário irá exibir o código da especialidade que se encontra na tabservidor seguidamente da descrição da especialidade que se encontra na tabespec. exemplo: 02 - ACUMPUTURA A exibição somente do código da especialidade, consegui realizar com o código abaixo: <? if (mysql_num_rows($result)>0) { while ($pm = mysql_fetch_array($result)) { echo " <tr onmouseover='pinta(1,this)' onmouseout='pinta(2,this)' height='18'> <td align='center'>$pm[siape]</td> <td> "; echo "<b>$pm[nome]</b>"; echo " </td> <td align='center'>$pm[espec]</td>"; echo " <td align='center'>$pm[totpontos]</td>"; } } ?></td></tr> </table> O campo espec da tabservidor contém o código da especialidade para cada médico, e o campo nomeesp da tabespec contém a descrição da especialidade para cada código. Abraços
×
×
  • Create New...