Jump to content

Viniiciiu Spinellis

Members
  • Content count

    29
  • Joined

  • Last visited

Community Reputation

0 Comum

About Viniiciiu Spinellis

  1. Viniiciiu Spinellis

    numero de linhas do inner join

    Pessoal boa tarde. Tenho um select que possui 3 inner join. <?php $query = $mysqli->prepare("SELECT s.data_agendada, s.conta_cliente, s.tecnico_responsavel, f.codigo_id, f.NomeAbrev, u.NomeAbrev, p.contacliente FROM servicos_rota as s inner join funcionarios as f on s.tecnico_responsavel = f.codigo_id inner join funcionarios as u on s.torre_inc = u.codigo_id inner join pendente_rota as p on s.conta_cliente = p.contacliente WHERE data_agendada=? AND torre_inc=? AND status_servico IS NULL ORDER BY nome_assinante ASC"); ?> Os 2 primeiros inner joins a intenção é pegar o nome da pessoa na tabela funcionarios com o mesmo id da tabela servicos_rota, mas na terceira eu queria saber se o código da s.conta_cliente existe na p.contacliente. Na verdade eu queria tentar que no inner join eu já conseguisse pegar o num_rows e fazer uma ação se o código da 1ª existe na segunda no dia atual (s.conta_cliente = p.contacliente) if($variavel >= 1){ echo "existe"; }else{ echo "vazio"; }; como fazer isso no momento do inner join? eu não queria fazer um outro select e cair no N+1.
  2. Viniiciiu Spinellis

    Count + INNER JOIN

    Pessoal boa tarde, tenho um select que lista os registros com maiores quantidades em ordem de maior para menor, só que agora em vez de colocar o nome vou colocar o ID em tecnico_responsavel, a partir dai vou ter que ir buscar o nome em outra tabela, provavelmente com inner join, não estou conseguindo inserir o inner join no select. <?php $pegavendedores = "SELECT tecnico_responsavel, COUNT(tecnico_responsavel) as repetidos FROM servicos_rota WHERE tipo_servico !='RET' AND data_agendada='$pegadata' AND status_servico IS NULL GROUP BY (tecnico_responsavel) ORDER BY repetidos DESC"; $query = $mysqli->query($pegavendedores); while($colunas = $query->fetch_assoc()){ ?> <?php if($colunas['repetidos'] == 0){}else{ ?> <span>(AQUI AO INVEZ DO NOME DO TECNICO RESPONSAVEL VOU TER QUE EXIBIR O NOMEABREV DA TABELA FUNCIONARIOS)<?php echo $colunas['tecnico_responsavel'];?> - <?php echo number_format($colunas['repetidos'],0); ?></span><br> <?php }; ?> Em tecnico_responsavel seria o ID e eu teria que ir na tabela funcionarios buscar na tabela o codigo_id igual ao do tecnico_responsavel e exibir o nome da tabela NomeAbrev.
  3. Viniiciiu Spinellis

    Session encerrando sozinha

    Fiz um teste e ele está quebrando realmente com 24 minutos. Se eu colocar um refresh automático de uns 15 em 15 minutos, seria suficiente para segurar a sessão?
  4. Viniiciiu Spinellis

    Session encerrando sozinha

    Bom dia ESerra, fiz o teste e coloquei o código no começo da página, deixei umas meia hora sem atualizar e quando atualizei tinha encerrado. Coloquei assim: ini_set('session.gc_maxlifetime','28000'); session_start(); OBS: o valor está para 1440 como você falou
  5. Viniiciiu Spinellis

    Session encerrando sozinha

    Pessoal bom dia. Tenho um sistema em uma hospedagem dessas simples, pra ser mais especifico na hostgator com aquele plano M. O problema aconteve quando eu crio uma $_SESSION['usuario'] para manter o usuario ativo na tela de logado. Não defini nenhum tempo para o destroy da session. A situação é, se o usuario ficar um tempo com a tela inativa, quando voltar no sistema a session quebra, procurei o suporte técnico da hospedagem mas nao obtive sucesso, nao consigo aumentar um tal de gc_maxlifetime e pesquisei bastante na internet, mas as opções que encontrei(não foram muitas) não resolveram minha situação. Vim aqui pois vocês podem ter alguma forma mais inteligente de criar uma session que não se destrua, também li algo sobre garbage collector e pode ser alguma coisa sobre isso, mas nao consegui uma solução. O sistema é bem simples, faz a verificação e cria uma session, nas outras paginas somente verifico se existe a session ou então redireciono para o login.
  6. Viniiciiu Spinellis

    Problema com N+1

    Caros bom dia. Como eu poderia(se possível), realizar a consulta abaixo evitando consultas desnecessárias? <?php $pegatec = mysql_query("SELECT * FROM funcionarios"); while($pegaostec = mysql_fetch_array($pegatec)){ $pegaonome = $pegaostec['NomeAbrev']; $pegatotal = mysql_query("SELECT * FROM servicos_rota WHERE data_agendada BETWEEN '$dataini%' AND '$datafim%' AND tecnico_responsavel= '$pegaonome' AND status_servico IS NOT NULL"); $CONTATOTAL = mysql_num_rows($pegatotal); $CONTAOK = mysql_query("SELECT * FROM servicos_rota WHERE data_agendada BETWEEN '$dataini%' AND '$datafim%' AND tecnico_responsavel= '$pegaonome' AND status_servico = 'OK'"); $contaokres = mysql_num_rows($CONTAOK); echo $contaokres; echo $CONTATOTAL; } ?> O problema é que tenho que rodar todos os registros de uma tabela, e pegar em outra tabela quantos registros tem daquele id do laço atual e exibir, por ter muitos registros demora muito e causa lentidão no servidor. Alguém conseguiria fazer algo mais prático?
  7. Viniiciiu Spinellis

    while dentro de while fica lento o carregamento

    Pessoal bom dia. Tenho uma tabela que puxa os dados do banco de dados. Dentro de cada <tr> tenho outro while que verifica se aquela conta da linha tem algum outro registro com um determinado campo preenchido. Só que quando ponho este while o carregamento da tabela fica super lento. Alguém tem alguma solução mais prática? segue código: <?php $query = mysql_query("SELECT * FROM servicos_rota WHERE data_agendada='$pegadataget'"); while($fetch = mysql_fetch_array($query)) { ?> <tr class="<?php echo $class; ?>" style="background:#FFC; border-collapse:separate; border-spacing:5em; border:1px solid #333"> <td> <?php $select = mysql_fetch_array("SELECT * FROM servicos_rota WHERE melhor_contato IS NOT NULL AND cod_cliente='".$fetch['cod_cliente']."'"); $conta = mysql_num_rows($select); if($conta == 0){ ?> Não tem telefone <?php }else{ ?> telefones encontrados: <?php while($pegatelefone == mysql_fetch_array($select)){ echo $pegatelefone['melhor_contato']; }; ?> <?php } ?> </td> <td valign="top" style="border-right:1px dotted #333333"> <?php echo $fetch['id']; ?> </td> </tr> <? }; ?> Assim as linhas carregam muito mais devagar pois são 106000 registros no banco de dados.
  8. Viniiciiu Spinellis

    Pegar valor do submit do <tr>

    Pessoal bom dia. Minha dúvida é basicamente a seguinte: Tenho uma tabela que tem um submit para cada linha, o submit enviar pro jquery que faz o update. Não estou conseguindo fazer o jquery identificar qual o submit que eu cliquei, sempre vai o valor do primeiro. Segue o código: $(function($) { // Quando o formulário for enviado, essa função é chamada $("#aloctec").submit(function() { // Colocamos os valores de cada campo em uma váriavel para facilitar a manipulação var customer = $("#customer option:selected").val(); var id_serv = $("#id_serv").val(); // Exibe mensagem de carregamento $("#status").html(id_serv); // Fazemos a requisão ajax com o arquivo envia.php e enviamos os valores de cada campo através do método POST $.post('aloctec.php', {customer: customer, id_serv:id_serv }, function(resposta) { data: $("form#"+id).serialize() // Quando terminada a requisição // Exibe a div status $("#status").slideDown(); // Se a resposta é um erro if (resposta != false) { // Exibe o erro na div $("#status").html(resposta); } $("#status").hide("slow"); return false; }); }); }); </script> <form id="aloctec" action="javascript:func()" method="post"> <table class="as_gridder_table" width="100%" style="font-size:10px"> <thead> <tr class="grid_header"> <td><div class="grid_heading">Id</div></td> <td><div class="grid_heading">Assinante</div></td> <td><div class="grid_heading">Região</div></td> <td><div class="grid_heading">Técnico</div></td> <td><div class="grid_heading">Serviço</div></td> <td><div class="grid_heading">Período</div></td> <td><div class="grid_heading">Agendamento</div></td> </tr> </thead> <tbody> <?php if($count <= 0) { ?> <tr id="norecords"> <td align="center">Nenhuma os para hoje</td> </tr> <?php }else{ while($dadoss= mysql_fetch_array($queryss)){ ?> <tr> <td><?php echo $dadoss['id_servico']; ?></td> <td><?php echo $dadoss['nome_assinante']; ?></td> <td><?php echo $dadoss['regiao_servico']; ?></td> <td> <div id="status"></div> <select id="customer"> <option selected="selected">Selecione</option> <?php $pegdados = mysql_query("SELECT * FROM tecnicos"); while($dados = mysql_fetch_array($pegdados)){ ?> <option><?php echo $dados['NomeAbrev']; ?></option> <?php }; ?> </select> <input type="hidden" value="<?php echo $dadoss['id_servico']; ?>" id="id_serv" /> <input type="submit" value="ALC" /> </td> <td><?php echo $dadoss['tipo_servico']; ?></td> <td><?php echo $dadoss['periodo_agendado']; ?></td> <td><?php echo $dadoss['confimado_agendamento']; ?></td> </tr> <?php }; }; ?> </tbody> </table> </form>
  9. Pessoal boa tarde. Preciso realizar uma busca onde conste para mim os equipamentos da tabela icare que não estão na tabela rota e nem na tabela estoque. Consegui fazer com uma. mas com 2 não dá certo. Como proceder? ESTOQUE - IRD ROTA - IRD ICARE - IRD SELECT * FROM icare WHERE ird NOT IN (select distinct ird from rota). E para comparar o ICARE com 2, faço como? (desculpe se já tem, mas procurei e só encontrei relacionamento com uma)
  10. Viniiciiu Spinellis

    Erro com feed de notícias

    Bom dia. Estou criando um feed de novidades onde o usuário segue as outras pessoas. Na página explore.php seriam as novidades que os outros usuários fizeram, minha dificuldade é em fazer este loop. Seu que é alguma coisa com inner join, union all mas nao consigo fazer. Segue as tabelas: atualizacoes: idatualizacao | tipoatualizacao | dataatualizacao | idatualizador seguidores: idseguidores | idinteressado | idseguido No caso o sistema teria que ir na tabela seguidores, pegar todos os ids que o usuário logado segue e pegar as atualizações destes ids na coluna idatualizador da tabela atualizacoes. Alguém me ajuda?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.