Jump to content
fsales_123

Como otimizar codigo

Recommended Posts

Boa tarde galera, eu queria deixar o meu código menor possível....

 

codigo:

 

if(@$_POST)
    {       
			$sql = "SELECT * FROM receitas WHERE descricao LIKE '%".$_POST["query"]."%' ORDER BY ID DESC";
            //DANDO O COMANDO NO $sql
            $result = mysqli_query($conn, $sql);
	}else
    {
        if(empty($_GET["categoria"]))
    {       
			$sql = "SELECT * FROM receitas WHERE status = 'Ativo' AND ID ORDER BY RAND() LIMIT 9";

            $result = mysqli_query($conn, $sql);
     }else
    {
			$sql = "SELECT * FROM receitas WHERE categoria = '".strip_tags($_GET["categoria"])."' AND status = 'Ativo' ORDER BY nome ASC";

            $result = mysqli_query($conn, $sql);
    }
	}
			if (mysqli_num_rows($result) == false) 
            {
				echo '<div align="center"><br /><strong>Nenhuma receita encontrada.</strong><br /></div>';
			}else
            {
				while($ln = mysqli_fetch_assoc($result)) {
?>

 

Share this post


Link to post
Share on other sites
//define parte da query se nada foi postado e nem passado pela url
$query = "status = 'Ativo' AND ID ORDER BY RAND() LIMIT 9";

// se query foi postada
if (sizeof($_POST['query'])) {
   // define parte da query
   // não é uma boa idéia usar $_POST direto na montagem da query, sem tratar os dados recebidos
   $query = "descricao LIKE '%" . $_POST['query'] . "%' ORDER BY ID DESC";
} elseif (isset($_GET["categoria"])) {
// define parte da query
   $query = "categoria = '" . strip_tags($_GET["categoria"]) . "' AND status = 'Ativo' ORDER BY nome ASC";
}
// executa a query
$result = mysqli_query($conn, 'SELECT * FROM receitas WHERE ' . $query);
// é preciso verificar se houve alguma falha na execução da query


// só depois verificar se há algum resultado
if (mysqli_num_rows($result) == false) {
   echo '<div align="center"><br /><strong>Nenhuma receita encontrada.</strong><br /></div>';
} else {
   while ($ln = mysqli_fetch_assoc($result)) {

 

  • +1 1

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 Leandro T.
      Bom dia pessoal!
       
      Esta query está demorando 4 segundos. Será que teria como otimizá-la, lembrando que já estão indexadas as colunas: id, idtitulos, data e vencimento
       
      SELECT duplicatas.vencimento, data, duplicatas.valor, duplicatas.id
      FROM duplicatas 
      left   JOIN
      (
      select IdTitulo, data, Valor from pagtos  GROUP BY IdTitulo ORDER BY IdTitulo asc
      ) AS t on t.idtitulo = duplicatas.id

      WHERE duplicatas.vencimento BETWEEN '2019-01-01' AND '2019-01-31' 
    • By felipe_chipset
      Fala galera, gostaria de tirar uma dúvida teórica (WEB)

      Qual vocês consideram a melhor maneira de otimizar imagens de um site para web dado o seguinte Cenário.

      Zend 3 ou Cakephp3
      S3 (para armazenar as imagens)
       
      O cliente sobe as imagens (no tamanho que ele quiser)
      Eu tenho que diminuir o tamanho dessas imagens por script (para o site não demorar 30 segundos para abrir no browser a imagens de upload quando o site for aberto).

      Minhas dúvidas são.. 

      O que vocês utilizariam para melhorar a performance ao carregar essas imagens de forma mais rápida possível?
      Qual processos utilizariam para diminuir o tamanho das imagens (biblioteca ou qualquer coisa do tipo em PHP)?
    • By thiago riccieri
      Ola, alguém poderia me dar uma ajudunha nesta consulta.
      Preciso otimiza-la, pois esta levando aproximadamente 20 segundos para executar a query na aplicação.
      NOTA: Quando removo ORDER BY r.mes1 ASC a consulta leva 2 segundos. Mas preciso desta ordenação!!!!
       
               
       SELECT              e.idequipamento, e.equipamento, e.circuito, e.conjunto, e.zona, e.idlocalidade, e.trecho, e.soma, e.idregiao, e.idsupervisao, e.kmrede, e.clientes,              r.mes1, r.mes2,              g.relatorioanalitico, g.soma, g.iasc, g.planopodas, g.citycity, g.energisaparceira, g.outros              FROM equipamento AS e              INNER JOIN rank AS r ON (e.idequipamento = r.idequipamento)             INNER JOIN gestao AS g ON (e.idequipamento = g.idequipamento)                         WHERE r.mes1>0  AND e.idsupervisao='1' ORDER BY r.mes1 ASC LIMIT 50  
    • By José Peixoto
      Olá, gostaria de saber como eu poderia otimizar a consulta para o cálculo de porcentagem abaixo:
      ((select count(a.cd_senha_gerada) contador from paciente_senha_fila a where obter_min_entre_datas(a.dt_geracao_senha, a.dt_primeira_chamada,1) > 15 and a.dt_geracao_senha between :dt_inicial and fim_dia(:dt_final) and a.dt_vinculacao_senha is not null and a.dt_inicio_atendimento is not null ) / (select count (a.cd_senha_gerada) contador from paciente_senha_fila a where obter_min_entre_datas(a.dt_geracao_senha, a.dt_primeira_chamada,1) > 0 and a.drt_geracao_senha between :dt_inicial and fim_dia(:dt_final) and a.dt_vinculacao_senha is not null and a.dt_inicio_atendimento is not null)) porcentagem Obrigado desde já!
×

Important Information

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