Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Estou com um problema com o tempo de pesquisa no banco de dados e consequente montagem da página php.
Uma consulta em uma tabela de mais de 50 mil registros executada via browser não consegue ser finalizada, ao mandar executar a pesquisa, a página fica tentando carregar e após uns 4 minutos ela desiste e aparece o erro "Ocorreu um erro durante a exibição desta página. Para continuar, atualize ou vá para outra página".
Como faço para resolver isso? Seria alguma configuração do APACHE, do PHP ou algo do tipo???
Segue o código:
<?php
function status($statu, $datIni, $datFim, $tip, $resp){
$query = "
SELECT
A.DAT_CADASTRO, A.COD_SOLICITACAO, A.COD_TIPO, B.COD_MOTIVO,
B.DES_MOTIVO, C.NOM_USUARIO, D.DES_STATUS, D.COD_COR, E.COD_ANALISTA,
F.COD_DETERMINACAO, F.COD_IMPACTO, F.COD_ALINHAMENTO, F.COD_SITUACAO,
F.COD_URGENCIA, F.COD_COMPLEXIDADE, F.COD_VIABILIDADE, F.COD_CUSTO,
F.COD_PRAZO, F.COD_RISCOS, F.COD_TEMPO, F.OBSERVACAO
FROM helpdesk.hdk_solicitacao A, helpdesk.hdk_solicitacao_motivo B,
helpdesk.hdk_usuario C, helpdesk.hdk_solicitacao_status D,
helpdesk.hdk_solicitacao_grupo E, hdk_priorizacao.matriz F
WHERE A.COD_MOTIVO = B.COD_MOTIVO
AND A.COD_USUARIO = C.COD_USUARIO
AND A.COD_STATUS = D.COD_STATUS
AND A.COD_SOLICITACAO = E.COD_SOLICITACAO
AND A.COD_SOLICITACAO = F.COD_SOLICITACAO
AND A.COD_STATUS in (".$statu.")
AND A.DAT_CADASTRO BETWEEN " .$datIni. " AND ".$datFim."
AND A.COD_TIPO IN(".$tip.")
AND E.IND_RESPONSAVEL = 1
AND E.COD_ANALISTA IN (0,".$resp.")
AND E.COD_GRUPO IN (5,6,7,8,9,10)
GROUP BY A.COD_SOLICITACAO
ORDER BY A.COD_SOLICITACAO;";
$sql1 = mysql_query($query1, $conexao1);
$time_end = microtime (true);
$time_res = $time_end - $time_start ;
echo " a consulta levou US $time_res segundos ";
?>
<table id='matriz' border='1px' cellspacing='0' cellpadding='2'>
<tr>
<th>Data</th>
<th>Responsável</th>
<th>Tipo</th>
<th>Cliente</th>
<th>Chamado</th>
<th>Status</th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Determinacação legal ou Administração Superior</b></h6>1- Não<br>5- Sim">Deter. legal ou Adm Superior</a></th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Impacto nas metas (indicadores das áreas)</b></h6>1- Não<br>5- Sim">Impacto metas (Indicadores)</a></th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Alinhamento à estratégia da empresa</b></h6>1- Não<br>5- Sim">Alinham. estrat. empresa</a></th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Situação da implementação</b></h6>1- 0%<br>2- até 20%<br>3- até 30%<br>4- até 40%<br>5- acima de 50%">Situ. implem.</th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Urgência</b></h6>1- fora semestre<br>2- 1º semestre<br>3- 1º trimestre<br>4- 2º mês<br>5- 1º mês">Urgência</a></th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Complexidade</b></h6>*Mais de uma tecnologia;<br>*Integrações;<br>*Regra de negócio com- plexa.<br><br>1- Baixa complexidade (utiliza 1 item)<br>3- Média complexidade (utiliza 2 itens)<br>5- Alta complexidade (utiliza os 3 itens)">Complexidade</a></th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Viabilidade técnica</b></h6>1- totalmente viável<br>5- totalmente inviável">Viabilidade téc.</a></th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Custo</b></h6>1- até R$ 5.000,00<br>2- até R$ 20.000,00<br>3 até R$ 50.000,00<br>4 até R$ 100,000,00<br>5 acima de R$ 100.000,00">Custo</th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Prazo de implementação</b></h6>1- até 10 dias<br>2- até 30 dias<br>3- até 60 dias<br>4- até 90 dias<br>5- acima de 90 dias">Prazo implem.</a></th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Riscos</b></h6>1- risco inexistente<br>2- muito baixo<br>3- baixo<br>4- alto<br>5- muito alto">Riscos</th>
<th><a href="#" class="dica" title="<h6 align='center'><b>Tempo de geração de resultados</b></h6>1- até um mês<br>2- até três meses<br>3- até seis meses<br>4- até um ano<br>5- acima de um ano">Tempo geração result.</a></th>
<th>Soma</th>
<th>Observação</th>
</tr>
<?php
//contador total
$solicitacoes = 0;
$i= 0;
while ($dados = mysql_fetch_assoc($sql1)) {
//---------------------------------ANALISTA-----------------------------------\\
$codigoAnalista = $dados['COD_ANALISTA'];
if($codigoAnalista != '0'){
$nome = mysql_query(
"SELECT NOM_USUARIO FROM helpdesk.hdk_usuario C
WHERE C.COD_USUARIO = ".$codigoAnalista.";"
, $conexao1);
$nomeAnalista = mysql_fetch_row($nome);
}elseif($codigoAnalista == '0'){
$codigoAnalista = $dados['COD_GRUPO'];
$nome = mysql_query(
"SELECT NOM_GRUPO FROM helpdesk.hdk_grupo C "
."WHERE C.COD_GRUPO = ".$codigoAnalista.";"
, $conexao1);
$nomeAnalista = mysql_fetch_row($nome);
}
//----------------------------CONTS PARA O GRÁFICO----------------------------\\
if ($dados['COD_MOTIVO'] === '2' or $dados['COD_MOTIVO'] === '6' or $dados['COD_MOTIVO'] === '10' or $dados['COD_MOTIVO'] === '15' or $dados['COD_MOTIVO'] === '21' or $dados['COD_MOTIVO'] === '24') {
$contDes++;
} elseif ($dados['COD_MOTIVO'] === '3' or $dados['COD_MOTIVO'] === '11' or $dados['COD_MOTIVO'] === '17' or $dados['COD_MOTIVO'] === '18' or $dados['COD_MOTIVO'] === '22' or $dados['COD_MOTIVO'] === '26') {
$contProj++;
} elseif ($dados['COD_MOTIVO'] === '4' or $dados['COD_MOTIVO'] === '8' or $dados['COD_MOTIVO'] === '12' or $dados['COD_MOTIVO'] === '19' or $dados['COD_MOTIVO'] === '20' or $dados['COD_MOTIVO'] === '27') {
$contSup++;
} elseif ($dados['COD_MOTIVO'] === '5' or $dados['COD_MOTIVO'] === '9' or $dados['COD_MOTIVO'] === '14' or $dados['COD_MOTIVO'] === '16' or $dados['COD_MOTIVO'] === '23' or $dados['COD_MOTIVO'] === '25') {
$contManu++;
} else {
$contNaoInfo++;
}
//-----------------------------------DATA-------------------------------------\\
//Separação de data, pois no DB está no formato (YYYYMMDDHHMM)
$DAT_CADASTRO = $dados['DAT_CADASTRO'];
//ano
$anoInt = explode(',', $DAT_CADASTRO);
$anoString = implode(':', $anoInt);
$anoMostrar = substr($anoString, 0, 4);
//mes
$mesMostrar = substr($anoString, 4, 2);
//dia
$diaMostrar = substr($anoString, 6, 2);
//-----------------------MOSTRANDO AS INFORMAÇÕES NUMA TABELA----------------\\
?>
<tr>
<td><?php echo $diaMostrar."/".$mesMostrar."/".$anoMostrar;?></td>
<?php if ($dados ['COD_MOTIVO'] != '0') {?>
<td><?php echo utf8_encode ($nomeAnalista[$i]);?></td>
<?php }else {?>
<td>Não Informado</td>
<?php }?>
<td><?php echo utf8_encode ($dados['DES_MOTIVO']);?></td>
<td><?php echo utf8_encode($dados['NOM_USUARIO']);?></td>
<td><?php echo $dados['COD_SOLICITACAO'];?></td>
<td style='color:white' bgcolor=<?php echo $dados['COD_COR'];?>><?php echo utf8_encode($dados['DES_STATUS']);?></td>
<td>
<select name='determinacao' class="qnt">
<?php if($dados['COD_DETERMINACAO'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_DETERMINACAO'] != '0'){?>
<option value=<?php echo $dados['COD_DETERMINACAO'];?>><?php echo $dados['COD_DETERMINACAO'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='impacto' class="qnt">
<?php if($dados['COD_IMPACTO'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_IMPACTO'] != '0'){ ?>
<option value=<?php echo $dados['COD_IMPACTO'];?>><?php echo $dados['COD_IMPACTO'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='alinhamento' class="qnt">
<?php if($dados['COD_ALINHAMENTO'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_ALINHAMENTO'] != '0'){ ?>
<option value=<?php echo $dados['COD_ALINHAMENTO'];?>><?php echo $dados['COD_ALINHAMENTO'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='situacao' class="qnt">
<?php if($dados['COD_SITUACAO'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_SITUACAO'] != '0'){ ?>
<option value=<?php echo $dados['COD_SITUACAO'];?>><?php echo $dados['COD_SITUACAO'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='urgencia' class="qnt">
<?php if($dados['COD_URGENCIA'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_URGENCIA'] != '0'){ ?>
<option value=<?php echo $dados['COD_URGENCIA'];?>><?php echo $dados['COD_URGENCIA'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='complexidade' class="qnt">
<?php if($dados['COD_COMPLEXIDADE'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_COMPLEXIDADE'] != '0'){ ?>
<option value=<?php echo $dados['COD_COMPLEXIDADE'];?>><?php echo $dados['COD_COMPLEXIDADE'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=3>3</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='viabilidade' class="qnt">
<?php if($dados['COD_VIABILIDADE'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_VIABILIDADE'] != '0'){ ?>
<option value=<?php echo $dados['COD_VIABILIDADE'];?>><?php echo $dados['COD_VIABILIDADE'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='custo' class="qnt">
<?php if($dados['COD_CUSTO'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_CUSTO'] != '0'){ ?>
<option value=<?php echo $dados['COD_CUSTO'];?>><?php echo $dados['COD_CUSTO'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='prazo' class="qnt">
<?php if($dados['COD_PRAZO'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_PRAZO'] != '0'){ ?>
<option value=<?php echo $dados['COD_PRAZO'];?>><?php echo $dados['COD_PRAZO'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='riscos' class="qnt">
<?php if($dados['COD_RISCOS'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_RISCOS'] != '0'){ ?>
<option value=<?php echo $dados['COD_RISCOS'];?>><?php echo $dados['COD_RISCOS'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
</td>
<td>
<select name='tempo' class="qnt">
<?php if($dados['COD_TEMPO'] == '0'){ ?>
<option value=0>Selecione...</option>
<?php }elseif($dados['COD_TEMPO'] != '0'){ ?>
<option value=<?php echo $dados['COD_TEMPO'];?>><?php echo $dados['COD_TEMPO'];?> </option>
<?php } ?>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
</select>
</td>
<td><input type='text' class="total" value=<?php echo (($dados['COD_DETERMINACAO']*8)+($dados['COD_IMPACTO']*7)+($dados['COD_ALINHAMENTO']*7)+($dados['COD_SITUACAO']*5)+($dados['COD_URGENCIA']*2))-(($dados['COD_COMPLEXIDADE']*2)+($dados['COD_VIABILIDADE']*5)+($dados['COD_CUSTO']*3)+($dados['COD_PRAZO'])+($dados['COD_RISCOS']*4)+($dados['COD_TEMPO']*2))?> /></td>
<td><textarea rows="1" cols="33"><?php echo $dados['OBSERVACAO'];?></textarea></td>
</tr>
</table>
?>
Obs.: Sei que funções mysql estão obsoletas, vou ajustar depois.
Carregando comentários...