Ir para conteúdo

Guilherme Luiz

Members
  • Total de itens

    345
  • Registro em

  • Última visita

  • Dias vencidos

    3

Guilherme Luiz venceu o dia em Junho 22

Teve o conteúdo mais curtido

Reputação

41 Levemente Bom

1 Seguidor

Sobre Guilherme Luiz

  • Data de Nascimento Março 23

Informações Pessoais

  • Sexo
    Masculino

Contato

Últimos Visitantes

93272 visualizações
  1. Guilherme Luiz

    Erro ao enviar e-mail

    SMTP connect() failed. Seu proprio erro já diz o que está acontecendo. A conexão SMTP falhou. Motivos: Dados incorretos de conexão Revise os dados de endereço smtp, porta, usuario, senha... Enquanto os seus dados de conexão estiverem errados, isso vai seguir acontecendo. Pergunte ao seu Host (servidor web) quais são os dados de conexão do email via smtp
  2. Guilherme Luiz

    PHP puro x Frameworks

    Pense assim: E se amanha o framework não existir mais? Os frameworks estão surgindo aos montes pq é uma trend do mercado porque pelo mercado a fora é "linha de produção" e os frameworks ajudam nesse quesito de acelerar o trabalho e também de padroniza-lo de modo que outros devs saberão o que você quis dizer com cada linha do seu código. Mas, e se o framework amanha não existir mais e você "sabia" php apenas pelo framework?! Isso acontece aos montes com devs de front-end. 9 em 10 utilizam o bootstraap mas na hora que aparece uma personalização ou algo que o framework não atende, os problemas surgem porque não dominam a base dele que é CSS e JS basicamente. Minha recomendação é: Faça o PHP puro, seja ele estruturado ou orientado a objeto. Eu particularmente prefiro trabalhar sempre com php estruturado sem frameworks. Depois disso se você ver que precisa de algo rapido e padronizado, ai sim parta para os frameworks. Os que eu vejo mais utilizarem é o Laravel, Symfoni e o Zend Abraço.
  3. Guilherme Luiz

    Descobrir Pedidos não pagos

    Não seria mais facil incluir algum flag na tabela? por exemplo ID | idpedido | idproduto | qtd | valorunitario | valor total | pago 1 | 2 | 2 | 200 | 1 | 200 | 0 2 | 2 | 1 | 50 | 1 | 50 | 1 3 | 1 | 10 | 200 | 1 | 200 | 0 4 | 2 | 1 | 50 | 1 | 50 | 0 4 | 3 | 1 | 50 | 1 | 50 | 1 ai na sua query você faz um WHERE condicionando a coluna PAGO Desta forma você até poderá criar indices de consulta que melhorará a sua performance para pesquisas com grandes volumes WHERE pago=1 (1 para pago e 0 para não pago)
  4. Guilherme Luiz

    Meio de como cadastrar diversos valores em tabela Mysql ?

    mysqli_multi_query $query = "INSERT INTO montadora... $query .="INSERT INTO carro...; mysqli_multi_query($conexao,$query);
  5. Guilherme Luiz

    Foreach com fputcsv - PHP

    aplica o foreach no indice que você quer iterar.
  6. Guilherme Luiz

    Otimização de SELECT

    Resolvi o problema... O que deixava a query lenta era o LEFT JOIN que eu estava aplicando... Eu o retirei e a consulta com 100k de registros nao demora nem 2 segundos. Agora, porque esse LEFT estava atrasando tanto assim a minha consulta?
  7. Guilherme Luiz

    Otimização de SELECT

    Olá pessoal, Tenho a seguinte consulta $queryList = "SELECT sms.id as id, sms.mobile as mobile, sms.ddi as ddi, sms.send_date as dataEnvio, sms.dlr_date as dataDlr, sms.status as status, sms.substatus as descricao, sms.route as rota, sms.cost as tarifa, sms.currency as moeda, w.flag as flag, w.country as pais, ctt.nome as nome FROM sms_mt as sms INNER JOIN worldwide as w ON w.ddi = sms.ddi LEFT JOIN (SELECT concat(ddi,mobile) as mobile, nome as nome FROM phonebook WHERE user_id='{$userID}') as ctt on ctt.mobile = sms.mobile WHERE sms.user_id='{$userID}' and sms.campaing_id='{$x['id']}' UNION ALL SELECT sms.id as id, sms.mobile as mobile, sms.ddi as ddi, sms.dlr_date as dataEnvio, sms.dlr_date as dataDlr, sms.status as status, sms.substatus as descricao, sms.route as rota, sms.cost as tarifa, sms.currency as moeda, w.flag as flag, w.country as pais, ctt.nome as nome FROM sms_mo as sms INNER JOIN worldwide as w ON w.ddi = sms.ddi LEFT JOIN (SELECT concat(ddi,mobile) as mobile, nome as nome FROM phonebook WHERE user_id='{$userID}') as ctt on ctt.mobile = sms.mobile WHERE sms.user_id='{$userID}' and sms.campaing_id='{$x['id']}' and sms.billed=1 ORDER BY dataEnvio DESC"; $sqlList = mysqli_query($connect_sql,$queryList); while($list = @mysqli_fetch_assoc($sqlList)){ $stats[] = [ "id" => (int)$list['id'], "mobile" => $list['mobile'], "flag" => "/includes/images/flags/{$list['flag']}.png", "ddi" => $list['ddi'], "pais" => $list['pais'], "nome" => ((empty($list['nome'])) ? null : $list['nome']), "dataEnvio" => date("d/m/y H:i:s A", strtotime($list['dataEnvio'])), "dataDlr" => date("d/m/y H:i:s A", strtotime($list['dataDlr'])), "status" => $list['status'], "desc" => $list['descricao'], "rota" => $list['rota'], "tarifa" => $list['tarifa'], "moeda" => $list['moeda'] ]; } Onde eu tenho a seguinte estrutura de tabelas sms_mt sms_mo Com a consulta que estou utilizando, eu estou tendo problemas de atraso na resposta. Para consultas com mais de 3.000 registros, minha aplicação demora mais de 2 minutos para trazer tais resultados. o que eu acho muito tempo. Se eu faço uma pesquisa de mais de 20k de linhas, a aplicação demora mais de 8 minutos... Essa consulta eu puxo sem paginação porque a faço através do PHP + AngularJs que aplica a paginação com base no objeto json total recebido do banco de dados. Como posso otimizar essa query ou a tabela para ter melhor performance? Todas as colunas com a chavinha cinza de indice, estão agrupadas num indice indez unico.
  8. Guilherme Luiz

    Notice: Undefined variable:

    Leia o erro: Undefined variable significa que a variável chamada não foi declarada/definida.
  9. Guilherme Luiz

    Requisições GET assincronas com cURL

    Pessoal, Consegui realizar via socket o que preciso vejam o exemplo: error_reporting(E_ALL); /* Get the port for the WWW service. */ $service_port = getservbyname('www', 'tcp'); /* Get the IP address for the target host. */ $url = parse_url("https://www.meusite.com.br/read.php"); $address = gethostbyname($url['host']); /* Create a TCP/IP socket. */ $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket === false) { echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n"; } else { echo "OK.\n"; } echo "Attempting to connect to '$address' on port '$service_port'..."; $result = socket_connect($socket, $address, $service_port); if ($result === false) { echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "\n"; } else { echo "OK.\n"; } $in = "GET {$url['path']} HTTP/1.1\r\n"; $in .= "Host: {$url['host']}\r\n"; $in .= "Connection: Close\r\n\r\n"; $out = ''; echo "Sending HTTP HEAD request..."; socket_write($socket, $in, strlen($in)); echo "OK.\n"; // echo "Reading response:\n\n"; // while ($out = socket_read($socket, 2048)) { // echo $out; // } echo "Closing socket..."; socket_close($socket); echo "OK.\n\n"; Peguei este código do proprio manual do PHP. Neste modelo eu posso optar por não ler o response que o servidor roda em "segundo-plano" a requisição em GET e tenho o resultado esperado mesmo quando o navegador é fechado e o servidor não "trava" a navegação do usuário. De todas as formas, gostaria de comentários de quem entende um pouco mais sobre estes tipos de requisições para poder me ajudar na formação da logica com foco em melhor desempenho.
  10. Guilherme Luiz

    Requisições GET assincronas com cURL

    Olá pessoal, Vamos abaixo: Meu carma Possuo uma aplicação que faz requisições a uma API em Rest via cURL. Durante o consumo desta API eu tenho diversas requisições e variaveis paralelas que fazem validação, inserção e edição de dados no banco de dados. Durante este processo, mesmo realizando a utilização de PHP + AngularJS a requisição até ser finalizada, deixa a pagina travada até que venha um response final da API requisitada. Possíveis técnicas a serem utilizadas Estive estudando algumas técnicas de threading e sockets, porem o servidor atual que utilizo não possui acesso a biblioteca pthreads para o threading e a utilização via socket não consegui compreender e faze-la funcionar rsrs. O que estou aplicando Fazendo alguns testes, percebi que ao aplicar o cURL com um timeout de 1 segundo "resolve" o problema porque desta forma realizo o fluxo: Capturo todos os dados que serão enviados a API Salvo dados capturados no BD (mysqli) Faço a requisição via cURL com timeout em 1 segundo para um script que fará a leitura destes dados pendentes de envio a API Com os dados capturados, faço a requisição a API e então salvo o retorno e faço as devidas validações ao meu BD em "segundo plano". De ante mão já reparei um "problema" que é justamente na requisição cURL com timeout em 1 segundo porque, uma vez que faço isso eu não tenho um retorno do meu script se ele foi requisitado ou não porque nem o http_code consigo recuperar para poder fazer qualquer tratativa e além disso também acredito que terei problemas no momento que o navegador do usuário atualizar porque a requisição feita será stopada e os dados serão salvos de forma parcial. Então, além destes problemas, temos algum outro "contra" a utilizar desta forma? Ao meu ver o que estou fazendo é mais uma gambiarra do que um código bem executado. O que eu preciso Uma orientação de como e qual a melhor técnica, tendo em vista minhas limitações de servidor citada acima (em relação ao pthreads), para poder realizar essa requisição GET de forma assíncrona. cURL "async" que estou utilizando error_reporting(E_ALL); $url = "www.meusite.com.br/pending/read.php"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_NOSIGNAL, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); $result = curl_exec($ch); if($result){ var_dump(curl_getinfo($ch)); }else{ var_dump(curl_error($ch)); var_dump(curl_getinfo($ch)); } var_dump($result); curl_close($ch);
  11. Guilherme Luiz

    MySQL Workbench

    Desconheço
  12. Guilherme Luiz

    Duplicando registros mesmo com verificação?

    Para casos assim nas aplicações que crio eu não faço uma consulta para depois inserir registros, ainda mais se eu não quero tal ação.Você pode modificar seu banco de dados criando INDEXes que não permitem duplicação de registro baseado em colunas chaves. E no proprio código, na querie, você pode user o INSERT ON DUPLICATE KEY UPDATE - http://www.mysqltutorial.org/mysql-insert-or-update-on-duplicate-key-update/ Desta forma o mysql vai atualizar o registro caso a querie de insert retorne algum erro sobre registro duplicado com base nas indexes criadas que eu comentei no inicio.
  13. Guilherme Luiz

    Select na tabela

    Eu não montaria essa tabela desta forma porque está agrupando valores diferentes a colunas identicas. Eu faria algo como: ID / PRODUTO / COR / TAMANHO 1 / Produto 1 / Azul / Grande 2 / Produto 2 / Vermelho / Pequeno etc... Criaria colunas para cada uma das especificações, mas dentro do seu caso a consulta ficaria algo como: SELECT * FROM tabela WHERE valor IN ('azul','grande') GROUP BY produto E dai então daria um fetch_assoc para listar os produtos 4 e 1 com seus respectivos valores. Essa querie vai buscar todos os registros que tenham AZUL e GRANDE na coluna VALOR e agrupar os resultados pela coluna PRODUTO.
  14. Guilherme Luiz

    Criptografar arquivos PHP

    Tenha em mente que qualquer coisa que você tenha elaborado em PHP hoje em dia, em algum lugar do mundo já existe algo similar porque tudo se resume a edição, inserção e exclusão de dados! Então essa preocupação para pequenos projetos é desnecessária no meu ponto de vista Venda de sistemas acaba esbarrando neste quesito. O ideal é o Saas para evitar "problemas". O que você pode fazer é simplesmente vender o seu código seguido de um "pacote de suporte" para futuras implementações/ajustes que o seu cliente precise. Assim você o amarra a você. Uma outra forma é "minificar" os códigos para dificultar as alterações mas indiferente disto se o seu cliente for curioso ele vai achar um meio de realizar modificações se quiser e se tiver o conhecimento.
  15. Guilherme Luiz

    Como enviar acão com jquery

    Você precisa ver sobre Onclick e Innerhtml... https://www.devmedia.com.br/ajax-tutorial/24797 bons estudos
×

Informação importante

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