Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ghlevin

PHP e Javascript - Ajustando busca em tabela MySQL (Doctrine Query)

Recommended Posts

Estou fazendo na minha página do meu cliente, que assumi de outro desenvolvedor, uma seção pra buscar eventos cadastrados no banco de dados MySQL. Como está essa página:

<div id="detalhesBusca" class="textDescricaoSobre font13" style="display: none">
    <b>BUSCA DE EVENTO</b><br><br>
    <div class="BoxForm1"><span class="titNomeInputs"><b>Digite o número do evento:</b></span>
        <div class="inputMGM">
            <input name="buscaNumero" id="buscaNumero" class="validate[required]" title=""></input>
        </div>
        <input id="buscaNoBanco" name="buscaNoBanco" type="button" class="textDescricaoSobre font13" value="Buscar Evento" onclick="buscaBanco(document.getElementById('buscaNumero').value);" style="cursor: pointer; width: 93px;" />
    </div>
    <div id="resultadoBusca" class="textDescricaoSobre font13" style="display: none">
        <b>RESULTADO DA BUSCA</b><br><br>
        <i>Código:</i> <label id="resultCodigo"></label><br>
        <i>Modelo:</i> <label id="resultModelo"></label><br>
        <i>Evento:</i> <label id="resultEvento"></label><br>
        <i>Local:</i> <label id="resultLocal"></label><br>
        <i>Data e Hora:</i> <label id="resultData"></label> <label id="resultHora"></label><br>
        <i>Carga Horária:</i> <label id="resultCarga"></label><br>
        <i>Conteúdos Abordados:</i> <label id="resultConteudos"></label><br>
        <i>Indicadores de Performance:</i> <label id="resultIndicadores"></label><br>
        <i>Materiais:</i> <label id="resultMateriais"></label><br>
        <i>Facilitadores: </i> <label id="resultFacilitadores"></label><br>
        <i>Lista de Presença: <label id="resultLista"></label></i>
    </div>
    <label id="voltaMenu2" class="SpaceEnviar" style="cursor: pointer; decoration: underline">VOLTAR AO MENU INICIAL</label>
</div>

A função buscaBanco foi definida assim:

function buscaBanco(numero){
    if (numero == '') {
        alert('Nenhum resultado encontrado!');
        $('#resultadoBusca').hide();
    }
    else {
        // Executa a consulta SQL. Se houver resultado, mostra na tela
        $('#resultadoBusca').show();
        <?php
            // class_exists('Servico') || include_once CLASS_PATH . 'Servico.class.php';
            $data['evento'] = Servico::getRetornosEventos();
            $event = $data['evento'];
        ?>
        document.getElementById('resultCodigo').textContent = <?php echo $event['id'] ?>
        document.getElementById('resultModelo').textContent = <?php echo $event['modelonome'] ?>
        document.getElementById('resultEvento').textContent = <?php echo $event['evento'] ?>
        document.getElementById('resultLocal').textContent = <?php echo $event['localevento'] ?>
        document.getElementById('resultData').textContent = <?php echo $event['dataevento'] ?>
        document.getElementById('resultHora').textContent = <?php echo $event['horaevento'] ?>
        document.getElementById('resultCarga').textContent = <?php echo $event['cargahoraria'] ?>
        document.getElementById('resultConteudos').textContent = <?php echo $event['conteudos'] ?>
        document.getElementById('resultIndicadores').textContent = <?php echo $event['indicadores'] ?>
        document.getElementById('resultMateriais').textContent = <?php if($event['chkapostila']=='1'){ echo "Apostila"; } else { echo "Nenhum"; } ?>
        document.getElementById('resultFacilitadores').textContent = <?php if($event['facilitadores']=='Externos'){ echo $event['externosnomes']; } else { echo $event['internosnomes']; } ?>
        document.getElementById('resultLista').textContent = <?php echo $event['listapresenca'] ?>
    }
}

E a função getRetornosEventos() que fica no arquivo servico.class.php (com doctrine query) funciona assim:

public static function getRetornosEventos(){
    return self::$evento = self::setRetornosEventos();
}

public static function setRetornosEventos(){
    $sql = Doctrine_Query::create()
    ->select('e.id,u.nome AS usuarionome,
             (CASE WHEN modelo = 1 THEN "Sala de Aula"
                   WHEN modelo = 2 THEN "On The Job"
                   WHEN modelo = 3 THEN "Palestra"
                   WHEN modelo = 4 THEN "Workshop"
                   WHEN modelo = 5 THEN "Programas Institucionais"
                   WHEN modelo = 6 THEN "Outro" ELSE modelo END) as modelonome,
             (CASE WHEN programa = 1 THEN "Eu Faço Parte"
                   WHEN programa = 2 THEN "PDG"
                   WHEN programa = 3 THEN "PDL Unidades"
                   WHEN programa = 4 THEN "PDL Corporativo"
                   WHEN programa = 5 THEN "Jeito de Ser" ELSE programa END) as programa,
              outromodelo,evento,localevento,DATE_FORMAT(dataevento, "%d/%m/%Y") as dataevento,horaevento,
              cargahoraria,conteudos,indicadores,chkapostila,chkcopia,chkoutro,chknenhum,outromaterial,
             (CASE WHEN facilitadores = "E" THEN "Externos"
                   WHEN facilitadores = "I" THEN "Internos" ELSE facilitadores END) as facilitadores,
              externosnomes,externosempresas,internosnomes,internosempresas,listapresenca')
    ->from('WtEducEventos e')
    ->addFrom('WtUsuario u')
    ->where('e.usua_id = u.id')
    ->addWhere('e.id = ' . $_POST['buscaNumero']);
    $data = $sql->fetchArray();
    return $data;
}

Porém, a página fica desconfigurada e aí não possível nem testar a busca. O que pode estar errado? Algum ponto-e-vírgula faltando na função buscaBanco? A declaração Class_Exists (normalmente fica nos arquivos de Controller) é obrigatória nesse caso? Ou de repente algum erro em misturar o PHP em script de java ou até mesmo com a consulta SQL (doctrine query).

Aceito ajudas e sugestões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá.
      Estou atualizando meu conhecimento com Front-End e me deparei com o seguinte problema.
      Criei um sistema para fazer o upload de imagens e alguns campos text.
      Algo bem simples para depois começar a estudar javascript para mostrar a miniatura....
      Mas quando saio do navegador Chrome ou da aba por mais de 3 minutos, ao retornar o navegador as vezes atualiza ou nem chega atualizar mas limpa os campos.
      Estou usando um Smart Motorola com Android, mas um amigo testou no iPhone e acontece a mesma coisa.
      Gostaria de saber se há como usar javascript para evitar isso?
      Agradeço desde já.

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <title>Uploader</title>
      </head>
      <body>
          <form action="?" method="post" enctype="multipart/form-data">
              <br><br>
              <div>selecione a imagem 1</div>
              <input type="file" name="foto1" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem1">
              
              <br><br>
              <input type="file" name="foto2" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem2">
              
              <br><br>

              <input type="file" name="foto3" accept="image/*">
              <br><br>
              <input type="text" name="nome_imagem3">
              
              <br><br>
              <input type="submit" value="Enviar">
              <br><br>
          </form>
      <?php
      if ($_SERVER['REQUEST_METHOD'] == 'POST')
      {
          vardump ($_FILES);
      }
      ?>
      </body>
      </html>
       
       
       
    • Por belann
      Olá!
       
      Estou usando o nextjs versão 15.2.3 e criei uma navbar que quando é carregado o programa aparece com a home, mas na hora de clicar na página produtos desaparece a navbar.
      A navbar esta sendo chamada no layout.tsx estou usando typescript
      e fica dessa forma
      <div>           <Navbar/>             <main>{children}</main>             </div>  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.