Jump to content
Omar~

Na sua opinião qual seria o melhor desempenho?

Recommended Posts

É o seguinte, tenho uma tabela de produtos a qual além de possuir características do produto já contém a coluna para o link da mesma.

Assim sendo faço a consulta da tabela para preencher um menu com o link para cada produto, e é aqui que entra a questão:

 

Na sua opinião o que seria mais viável ao usuário acessar um produto em questão?

  • Reaproveitar o array de retorno da query ao qual usei para compor os links do menu, só que filtrar esse array mostrando o índice ao qual é acessado.
  • Refazer a query listando somente o produto.

 

A aplicação é executada em um único arquivo.

Onde tenho o menu HTML listando cada produto contido na tabela (A qual também guarda as demais informações do produto).

 

Reaproveitar a query ficou meio estranho uma vez que tenho um array multi dimencional da query tenho que buscar o índice para ver se ele existe e ainda varrer o array para poder usar os dados do produto tipo assim:

<?php
// $url[1] : É o valor vindo da url
// $result : É o array multi de resultado da query
if (array_search($url[1], array_column($result, 'ap_link')) !== false) {
    foreach ($result as $value) {
        if ($url[1] == $value->ap_link) {
            // Existe o produto e a url é a mesma do link do produto
            break;
        }
    }
} else {
    // O valor da url não condiz com nenhum produto registrado
}

Essa alternativa evita uma segunda query desnecessária aliviando o lado do SQL, porém em um arrray multo extenso pode haver lentidão para processar os dados.

Por outro lado também ficar refazendo consultas também pode deixar a questão meio lenta.

 

A coisa toda é porque existem centenas de produtos na tabela e em ambos os casos está demorando mais do que deveria.

Então bateu essa dúvida, qual alternativa tomar, resolvi perguntar, pois várias cabeças peçam melhor que uma.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By danilo759
      Estou precisando saber o percentual de imagens que está no diretório e estou com dificuldades. Alguém pode me ajudar dar uma luz?

       
      $qry_canal = $con->query("SELECT * FROM grade, dados WHERE grade.id = dados.id AND grade.canal IN('HBO','GLO','TNT') GROUP BY dados.titulo"); $counter = 0; while($rows = $qry_canal->fetch(PDO::FETCH_ASSOC)){ $id = $rows['id']; $sigla = $rows['canal']; $sk = substr($rows['sk'], 0, 14); // Busca total de programas por canal /* ---------------------------------------------------------------- */ $qry_b = $con->query("SELECT * FROM grade, dados WHERE grade.id = dados.id AND grade.canal LIKE '".$sigla."' GROUP BY dados.titulo"); $total_programas = $qry_b->rowCount(); if(empty($serieskey)) { $prog_id = "$id"; } else{ $prog_id = "$sk"; } // VERIFICA SE EXISTE IMAGEM /* ---------------------------------------------------------------- */ if(file_exists("/imagens/".$prog_id."_epg.jpg")){ $arr_img[] = "".$counter++.""; } $total_fotos = "".count($arr_img).""; echo "".($total_fotos * 100 ) / $total_programas."% <br />"; }  
    • By Rafaelmcd
      Galera, queria a ajuda de você para fazer uma implementação em meu site. Eu estou tentando passar algumas informações do site atual para outro site, através de parâmetros na URL. E queria recuperar esses dados no outro site.
       
      Exemplo:
      No site inicial queria passar os seguintes dados: IP, URL principal do site, Titulo da Página, URL atual. O problema é que não sei pegar esses dados e converter em variável no site final. 
       
      Penso que no site inicial a URL deveria ser enviada mais ou menos dessa forma: https://siteinicial.com/post-teste?IP=127.0.0.1&UrlIni=siteinicial.com&Titulo=Post Teste&UrlAt=https://siteinicial.com/post-teste
       
      O problema é que não sei como capturar essas informações na pagina para passar na URL. 
      ===============================================
       
      O segundo passo a recuperar no site final. 
       
      Vi sobre esse script (<?php $url = parse_url($_SERVER["HTTP_REFERER"]);parse_str($url["query"],$queryString);?>) que recebe esses dados, mas não sei como pegar cada um dos dados recebidos e guardar em uma variável. 
       
      Se alguem puder me ajudar, eu agradeço. OBS: Os sites estão em WordPress.
    • By mateusmarcucci
      Pessoal, meu primeiro tópico, então desculpa qualquer coisa...
       
      É o seguinte, pra treinar to criando um sisteminha de aposta.
       
      Consiste em 2 campos, Valor apostado e ODD (odd é o quanto vai multiplicar a aposta caso ganhe). Porém quero colocar uma telinha aonde ele vai somar todos os ganhos e perdas do dia.
       
      Estou fazendo a soma direto no php, porém gostaria de passar o resultado dessa soma no banco de dados para assim ser possível somar as colunas.
       
      Eu tenho o metodo de escolha que é Ganhou ou Perdeu.
       
      Exemplo:   Valor apostado: R$5,00 | ODD 2.0 = R$10,00     Porém o lucro é apenas R$5,00. Tendo em vista que o lucro é subtraído do valor total - valor apostado. Caso perca, o valor apostado apenas passa a ser negativo
       
      Vou deixar o código que estou utilizando:
       
       
       
      <?php
          session_start();
          include_once("servidor.php");

          if (!empty($_SESSION['usuario']) and !empty($_SESSION['id'])) {
              $id = $_SESSION['id'];
              $nome = $_SESSION['nome'];
              $usuario = $_SESSION['usuario'];
          }else{
              $_SESSION['mensagem']="Você não está logado";
              header("Location: index.php");
              exit;
          }
          $id = $_SESSION['id'];        
          $consulta = "SELECT * FROM Resultados WHERE id = '$id' ORDER BY resultado ASC";
          $con = mysqli_query($conexao, $consulta);
          $banca = "SELECT * FROM Usuarios";
          $conBanca = mysqli_query($conexao, $banca);
          
      ?>

      <!DOCTYPE html>
      <html>
      <head>
          <title>Anote sua Aposta - Painel</title>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <link rel="stylesheet" type="text/css" href="css/cssEstilo.css">

          <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
          <!-- Font Awesome -->
          <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
          <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
          <script type="text/javascript" src="js/bootstrap.min.js"></script>
          <script type="text/javascript" src="js/jquery.mask.min.js"></script>
          <script type="text/javascript">
                  $(document).ready(function(){
                      $("#valor").mask("99990.00", {reverse: true})    
                      $("#odd").mask("999.999.990.00", {reverse: true})
                      
                  })        
                      
          </script>
      </head>

      <body class="fundoBodyPainel">
          <!-- topo -->
          <?php include('topo.php'); ?>
          <!-- fim topo -->
          <section>                        
                  <nav>
                      <p class="topoPainel"><strong>Bem vindo(a),</strong> <?php echo $_SESSION['nome'];?></p>
                  </nav>
          </section>
          <!-- Botão para acionar modal -->
          <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modalExemplo">
                Adicionar uma nova aposta
          </button>
          <!-- Modal -->
          <div class="modal fade" id="modalExemplo" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
            <div class="modal-dialog" role="document">
              <div class="modal-content">
                <div class="modal-header">
                  <h5 class="modal-title" id="exampleModalLabel">Adicionar uma nova aposta</h5>
                  <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
                    <span aria-hidden="true">&times;</span>
                  </button>
                </div>
                <div class="modal-body">
                  <section>
                      <div>
                          <form action="validarResultado.php" method="get" accept-charset="utf-8">
       
                                    <div class="form-group">
                                      <label>Valor Apostado:</label>
                                      <input type="text" class="form-control" id="valor" placeholder="Valor Apostado"
                                          name="valor">        
                                    </div>

                                    <div class="form-group">
                                      <label>ODD:</label>
                                      <input type="text" class="form-control" id="odd" placeholder="ODD" name="odd">                
                                   </div>
                                    <div class="form-group">
                                        <label for="Resultado">Resultado</label>
                                        <select id="inputEstado" class="form-control" name="resultado">
                                          <option selected>Escolher...</option>
                                          <option>Ganhou</option>
                                          <option>Perdeu</option>
                                        </select>
                                  </div>
                                </div>
                                    <button id="botaoCadastro" type="submit" name="enviar" class="btn btn-danger">Cadastrar</button>
                              </form>
                      </div>
                  </section>
                </div>
              </div>
            </div>
          </div>

          <section class="containerContatos">
              <div class="container">
                  <div class="row">
                      <div class="col-md-12">
                          <div class="d-flex justify-content-center table-responsive">
                              <table class="table table-striped" style="background: white;">
                                <thead class="thead-dark">
                                  <tr>
                                    <th scope="col">Valor</th>
                                    <th scope="col">ODD</th>
                                    <th scope="col">Resultado</th>
                                    <th scope="col">ID Aposta</th>
                                    <th scope="col">Retorno</th>
                                  </tr>
                                </thead>
                                <tbody>
                                    <?php
                                      while($dado = mysqli_fetch_assoc($con)) {
                                  ?>
                                  <tr>
                                    <td><?php echo $dado["valor"]; ?></td>
                                    <td><?php echo $dado["odd"]; ?></td>
                                    <td><?php echo $dado["resultado"]; ?></td>
                                    <td><?php echo $dado["idAposta"]; ?></td>
                                    <td><?php    
       
                                                $opcao1 = $dado["resultado"];                                                                                
                                                if ("$opcao1" == 'Ganhou') {
                                                    $retorno = ($dado["valor"] * $dado["odd"]) - $dado["valor"];
                                                    $retorno1 = $retorno;
                                                  $retorno1 = number_format($retorno1, 2, '.', '');
                                                  $retorno4 = $retorno;
                                                    echo "$retorno1";
                                                }
                                                if ("$opcao1" == 'Perdeu') {
                                                    $retorno = ($dado["valor"] - $dado["valor"]) - $dado["valor"];
                                                    $retorno1 = $retorno;
                                                  $retorno1 = number_format($retorno1, 2, '.', '');
                                                  $retorno4 = $retorno;
                                                    echo "$retorno1";
                                                }
                                                
                                            ?>                                          
                                    </td>                          
                                    </td>
                                  </tr>                            
                                  <?php } ?>
                                </tbody>
                              </table>
                          </div>
                      </div>
                  </div>
              </div>
          </section>    

          <?php  ?>
          

          
          <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
          <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
      </body>

      </html>
    • By violin101
      Caros amigos, saudações...
       
      Gostaria de tirar uma dúvida.
       
      Tenho um formulário que consta 03(três) ABAS, que são: Financeiro / Estoque / Observações  <<=== até aqui tudo bem
       
      Preciso que após o usuário clicar no botão ADICIONAR, o sistema possa VALIDAR todos os campos requerido das ABAS.
       
      Observação: quando valido o formulário o sistema apenas VALIDA os campos da ABA que estiver ativa.
       
      Como faço para VALIDAR todos os campos das ABAS mesmo que não estiver ativa ?
       
      Grato,
       
      Cesar
    • By unset
      Olá a todos, tenho uma aplicação pequena, que roda normalmente no php5 porém ao mudar a versão do php para 7 a mesma está apresentando a seguinte mensagem de erro
       
      Notice: Trying to access array offset on value of type null in
       
       
      <?php /* * APP CORE CLASS * Creates URL & Loads Core Controller * URL Format - /controller/method/param1/param2 */ class Core { // Set Defaults protected $currentController = 'Pages'; // Default controller protected $currentMethod = 'index'; // Default method protected $params = []; // Set initial empty params array public function __construct(){ $url = $this->getUrl(); // Look in controllers folder for controller if(file_exists('../app/controllers/'.ucwords($url[0]).'.php')){ // If exists, set as controller $this->currentController = ucwords($url[0]); // Unset 0 index unset($url[0]); } // Require the current controller require_once('../app/controllers/' . $this->currentController . '.php'); // Instantiate the current controller $this->currentController = new $this->currentController; // Check if second part of url is set (method) if(isset($url[1])){ // Check if method/function exists in current controller class if(method_exists($this->currentController, $url[1])){ // Set current method if it exsists $this->currentMethod = $url[1]; // Unset 1 index unset($url[1]); } } // Get params - Any values left over in url are params $this->params = $url ? array_values($url) : []; // Call a callback with an array of parameters call_user_func_array([$this->currentController, $this->currentMethod], $this->params); } // Construct URL From $_GET['url'] public function getUrl(){ if(isset($_GET['url'])){ $url = rtrim($_GET['url'], '/'); $url = filter_var($url, FILTER_SANITIZE_URL); $url = explode('/', $url); return $url; } } }  
      Alguém poderia dar uma força ai?
×

Important Information

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