Jump to content

Retur

Members
  • Content count

    172
  • Joined

  • Last visited

Community Reputation

1 Comum

About Retur

  1. Retur

    Update com Mysql e php

    Eu tenho um sistema onde estou fazendo o máximo para otimizar ele,afim de funcionar tranquilamente sem trazer grandes problemas para o restante do site. Esse sistema funciona da seguinte maneira,o usuário salva por exemplo 40 registros no banco de dados,e quando ele precisar utilizar esse registro ele resgata o registro novamente do banco de dados,estou usando o UPDATE para que esse sistema possa funcionar. Eu queria saber se alguém tem alguma ideia ou conselho para que eu possa otimizar mais ainda o código ou que eu possa fazer de maneira diferente para deixar o sistema mais otimizado ainda. Segue abaixo como estou fazendo o UPDATE para resgatar os registros salvos. $query = $conn->prepare("UPDATE tabela SET var = '0' WHERE var1 = '".var1."' AND var = '1'");$query->execute(); $query = $conn->prepare("UPDATE tabela dest,(SELECT var,var,var,var FROM tabela WHERE var = '".var."' AND var = '".var."') src SET var.var = '1', var.var = src.var WHERE dest.var = src.var AND src.var = '".var."'");$query->execute(); A primeira query eu faço apenas um UPDATE simples para retirar os registros que estão sendo utilizados,já no segundo update eu faço um select dos registros salvos e um update dos novos registros. Obrigado!
  2. Retur

    While para trazer resultado

    Eu estive pensando em tentar fazer alguns testes tentando retirar as condições do SELECT,por exemplo fazer a busca de todos os registros sem condição,e depois eu coloco a condição,fazer o SELECT mais limpo no banco de dados,evitando que ele "perca" tempo na busca.
  3. Retur

    While para trazer resultado

    Então,a principio estou tentando retirar os 5 while na página e colocar apenas um para ver se consigo resolver o problema. Em relação ao "seu BD está normalizado",o que você quis dizer com isso? Obrigado!
  4. Retur

    While para trazer resultado

    Não são resultados que prejudicaria o desempenho da página em relação a celular ou qualquer outra coisa,é a mesma coisa de serem listados de 50 a 100 nomes,e nesse meu caso a paginação não seria legal. É como eu disse,o que me parece ser o problema é tamanho da tabela que contém mais de 1 milhão de dados com a maneira que eu estou trazendo esses resultados,pelo menos o que eu acho. Por exemplo,se 100 usuários acessarem essa página,vai gerar uma requisição enorme,entende o que estou dizendo,ai acaba pesando um pouco.
  5. Retur

    While para trazer resultado

    Então,o que acontece é o seguinte,que eu não expliquei,é que esses resultados são de diversos usuários,o máximo que cada usuário iria carregar seria 100 resultados,ou até menos,pouquíssimos usuários iriam trazer mais do que 100 resultados.
  6. Retur

    While para trazer resultado

    Estou usando três WHILE para trazer um resultado de duas tabelas do banco de dados,uma tabela possui em torno de 1000 registro,outra tabela possui em torno de 1000000 de registros,só que estou notando que a maneira que estou fazendo,não está funcionando,pois está causando um lag no sistema. São três While com select das mesmas tabelas,porém com condições diferentes,o que eu queria saber é se tem algo que eu possa estar fazendo para tentar melhor esse script. $query = $conn->prepare("SELECT * FROM tabela1,tabela2 WHERE tabela1.var = '0' AND tabela1.var0 = '1' AND tabela1.var2 = '' AND tabela1.var3 = tabela2.var1 ORDER BY tabela2.var1");$query->execute();while ($result = $query->fetch(PDO::FETCH_ASSOC)){} $query = $conn->prepare("SELECT * FROM tabela1,tabela2 WHERE tabela1.var = '1' AND tabela1.var0 = '1' AND tabela1.var2 = '' AND tabela1.var3 = tabela2.var1 ORDER BY tabela2.var1");$query->execute();while ($result = $query->fetch(PDO::FETCH_ASSOC)){} $query = $conn->prepare("SELECT * FROM tabela1,tabela2 WHERE tabela1.var = '2' AND tabela1.var0 = '1' AND tabela1.var2 = '' AND tabela1.var3 = tabela2.var1 ORDER BY tabela2.var1");$query->execute();while ($result = $query->fetch(PDO::FETCH_ASSOC)){} Obrigado!
  7. Retur

    ORDER BY DESC como critério de classificação.

    Alguém sabe de algo que eu possa fazer para tentar deixar ordenado dessa maneira,pois por algum motivo que desconheço não está funcionando. $query = $conn->prepare("SELECT COUNT(*) + 1 FROM campo WHERE (var1 + var2 + $var3) ORDER BY var1 > (SELECT (var1 + var2 + $var3) FROM campo WHERE id = '".$variavel."' ORDER BY var1)");$query->execute();$resultado = $query->fetch(); PS: Precisava muito resolver esse problema,só que da maneira que estou fazendo,por algum motivo ele não está ordenando como eu preciso. Obrigado!
  8. Retur

    ORDER BY DESC como critério de classificação.

    Na verdade ali é um critério para decidir quem vai ficar em primeiro,segundo,terceiro,o ORDER BY valor1,está sendo um dos critérios de desempate para a classificação,entende,só que a maneira que estou fazendo não está dando certo.
  9. Estou precisando colocar um critério de classificação no script abaixo,estou tentando utilizar o "ORDER BY DESC",mais não está funcionando,alguém sabe me informa o motivo,segue o script abaixo. $query = $conn->prepare("SELECT COUNT(*) + 1 FROM tabela WHERE (valor1 + valor2 + valor3) ORDER BY valor1 DESC > (SELECT (valor1 + valor2 + valor3) FROM tabela WHERE id_usuario = '".$usuario['id']."' ORDER BY valor1 DESC)");$query->execute();$resultado = $query->fetch(); Obrigado!
  10. Retur

    criar torneio com php e array.

    Quando as rodadas estão sendo geradas,está ficando da seguinte maneira abaixo. Rodada: 1 Usuário B x Usuário A Usuário D x Usuário C Usuário F x Usuário E Usuário H x Usuário G Usuário J x Usuário I Rodada: 2 Usuário A x Usuário C Usuário D x Usuário B Usuário E x Usuário G Usuário H x Usuário F x Rodada: 3 Usuário D x Usuário A Usuário B x Usuário C Usuário H x Usuário E Usuário F x Usuário G x Rodada: 4 Usuário A x Usuário E Usuário F x Usuário B Usuário C x Usuário G Usuário H x Usuário D x Rodada: 5 Usuário F x Usuário A Usuário B x Usuário E Usuário H x Usuário C Usuário D x Usuário G x Rodada: 6 Usuário A x Usuário G Usuário H x Usuário B Usuário C x Usuário E Usuário F x Usuário D x Rodada: 7 Usuário H x Usuário A Usuário B x Usuário G Usuário F x Usuário C Usuário D x Usuário E x Rodada: 8 Usuário A x Usuário I Usuário J x Usuário B x x x Rodada: 9 Usuário J x Usuário A Usuário B x Usuário I x x x
  11. Retur

    criar torneio com php e array.

    Estou criando um torneio onde todos enfrentam todos,estou separando as batalhas por rodada,porém por algum motivo que eu desconheço,algumas rodadas não estão sendo geradas corretamente. Alguém pode me ajudar a resolver o motivo de gerar algumas rodadas corretamente e outras não,obrigado! <?php $times = array('Usuário A','Usuário B','Usuário C','Usuário D','Usuário E','Usuário F','Usuário G','Usuário H','Usuário I','Usuário J'); //Array de Times $qtde_times = count($times); // Quantidade de Times $num_rodadas = $qtde_times - 1; //numero de rodadas $times_por_rodada = 2 * (int) ($qtde_times / 2); $casa = array(); //guarda os jogos de quem joga em casa $fora = array(); // guarda os jogos de quem joga fora $jogos = array(); // guarda os jogos no final $jogos_temp = array(); //array temporário, verifica quem já jogou em cada rodada for ($i = 0; $i < $qtde_times; $i++) { //For para caminhar entre os times for ($j = $i; $j < $qtde_times; $j++) { //For para caminha entre os adversários if ($times[$i] != $times[$j]) { //verifica pra não deixar jogar um time contra ele mesmo if ($j % 2 == 0) { //if pra ver quem joga em casa ou fora $casa[] = $times[$i]; $fora[] = $times[$j]; } else { $casa[] = $times[$j]; $fora[] = $times[$i]; }//fim do if / else de jogar em casa ou fora }// verifica se é diferente pra poder fazer o confronto }// fim do for que caminha entre os adversários }// fim do for que verifica os times //parte que verifica quem já jogou em qual rodada for ($rodada = 0; $rodada < $num_rodadas; $rodada++) { for ($t = 0; $t < count($casa); $t++) { if (($casa[$t] != "") and ((in_array($casa[$t], $jogos_temp)) == false) and (((in_array($fora[$t], $jogos_temp)) == false))) { $jogos_temp[] = $casa[$t]; $jogos_temp[] = $fora[$t]; $casa[$t] = ""; $fora[$t] = ""; } } $jogos["Rodada: " . ($rodada + 1)] = $jogos_temp; $jogos_temp = array(); } for ($rod = 0; $rod < $num_rodadas; $rod++) { echo "Rodada: " . ($rod + 1) . "<br />"; for ($jog = 0; $jog < $times_por_rodada; $jog+=2) { echo $jogos["Rodada: " . ($rod + 1)][$jog] . " x " . $jogos["Rodada: " . ($rod + 1)][($jog + 1)] . "<br />"; } echo "<br />"; } ?> Vlws,obrigado!!!!
  12. Retur

    Servidor

    Estou com o seguinte problema no servidor,estava funcionando tudo normalmente,porém do nada não consegui efetuar acesso no PhpMyadmin e nem login no site,o banco de dados está funcionando normalmente. Eu reiniciei o servidor e apareceu o seguinte error [ERROR: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)],tive que reinstalar o mysql para o problema voltar a funcionar normalmente. Estou usando o Ubuntu 12.04,não fiz alteração nenhuma que pudesse surgir esse problema,quando eu tento entrar no PhpMyadmin,não aparece mensagem nenhuma e nem chega a efetuar o login,no sistema é como se não iniciasse a session. Alguém sabe me informa o que pode estar acontecendo? Obrigado!
  13. Retur

    Insert Mysql

    Vou postar a solução do meu problema,talvez alguém esteja passando pele mesmo problema,eu estou usando um script de insert e select junto,sendo assim eu não preciso de usar o while. Também acabei descobrindo durante os testes que o problema não era para selecionar e sim para inserir os dados,segue abaixo a solução que achei para o meu problema,se alguém tiver uma solução melhor e quiser compartilhar. $query = $conn->prepare("INSERT INTO tabela_a (campo_1,campo_2) SELECT valor_1,valor_2 FROM tabela_b WHERE valor_3 = '1' AND valor_4 = '1' AND valor_5 = '0'"); $query->execute();
  14. Retur

    Insert Mysql

    Eu tenho uma tabela no banco de dados que possui um total de 1,320,756 registros,só que porém eu preciso selecionar um total de x registros dessa tabela,venho notando que para selecionar esses registros está demorando um pouco,o que não me agrada,gostaria de saber se tem algo que pode ser feito para que melhore esse desempenho,desde já,obrigado! $query = $conn->prepare("SELECT * FROM tabela_a WHERE var_1 = var_1 AND var_2 = var_2 AND var_3 = var_3");$query->execute();while ($var = $query->fetch(PDO::FETCH_ASSOC)){ $query = $conn->prepare("INSERT INTO tabela_b (valor_1)VALUES(valor_1)");$query->execute();} Acima está o exemplo de como eu estou selecionando os registros e como os mesmos estão sendo inseridos,gostaria de saber se existe algo que possa ser feito para contornar a situação. Obrigado!
  15. Retur

    Sql Injection

    Estou com uma duvida,usando as funções a seguir,me ajuda a proteger do sql injection ou ainda continuo vulnerável. strip_tags(trim(addslashes(htmlspecialchars($variavel)))); Obrigado!
×

Important Information

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