Ir para conteúdo
Fórum Script Brasil

Helio Cesar

Membros
  • Total de itens

    5
  • Registro em

  • Última visita

Sobre Helio Cesar

Últimos Visitantes

591 visualizações

Helio Cesar's Achievements

0

Reputação

  1. Boa noite a todos, sou novo em python e gostaria de saber como faço para receber um retorno de um get feito em angular para uma api feito em Python, no angular estou usando assim: data.js HcApp.factory("servicespython", ['$http', function($http) { var serviceBase = 'controllers/python/' var obj = {}; obj.getPedido = function(dateInicio, dateFim){ return $http.get(serviceBase + 'pedido'); } return obj; }]); só que meu resultado é um html, quando envio assim pedido.py o retorno é todo o conteudo do arquivo py como se fosse uma string. o código Python estou usando assim: pedido.py import json def pedido(): return 'pedido 123' tenho que instalar alguma coisa a mais? a base do meu projeto é em AngularJS que funciona perfeitamente com webservice feita em php. Mais agora tenho que fazer AngularJS recebendo um return do Python, vou usar somente get para fazer essa conexão. Grato, Heoi Cesar
  2. Ola Beraldo desculpe a demora estava viajando, por favor de uma olhada abaixo e se o que fiz segue o padrão que você esta dizendo!! private function itemprecofinalizado(){ if($this->get_request_method() != "GET"){ $this->response('',406); } $id =(int)$this->_request['id']; //inicio versao em PDO if($id > 0){ define( 'MYSQL_HOST', 'localhost' ); define( 'MYSQL_USER', 'root' ); define( 'MYSQL_PASSWORD', 'root' ); define( 'MYSQL_DB_NAME', 'banco' ); //melhor jeito, retorna o erro try { $PDO = new PDO( 'mysql:host=' . MYSQL_HOST . ';dbname=' . MYSQL_DB_NAME, MYSQL_USER, MYSQL_PASSWORD ); } catch ( PDOException $e ) { echo 'Erro ao conectar com o MySQL: ' . $e->getMessage(); } $sqlProduto = "SELECT * FROM item_pedido i INNER JOIN produto p WHERE i.id_pedido = '".$id."' AND i.id_produto = p.prod_id ORDER BY p.prod_descricao"; $stmt = $PDO->prepare( $sqlProduto ); $result1 = $stmt->execute(); $rowItems = $stmt->fetchAll( PDO::FETCH_ASSOC ); $quantProduto = $stmt->rowCount(); if($quantProduto > 0 ){ foreach ( $rowItems as $rowItem ){ $duplicidade = 0;//verifica preco em duplicidade $id_pedido = $rowItem['id_pedido']; $id_prod = $rowItem['id_produto']; $prod_qtd = $rowItem['item_qtd']; $prod_descricao = $rowItem['prod_descricao']; $prod_unidade = $rowItem['prod_unidade']; $prod_embalagem = $rowItem['prod_embalagem']; //INICIO essa parte so pega o menor preco de cada item na tabela item_pedido_preco $sqlMenor = "SELECT min(item_vl_imposto) FROM item_pedido_preco r WHERE r.id_pedido ='".$id."' AND r.id_produto ='".$id_prod."' and r.item_vl_imposto != 0"; $stmt = $PDO->prepare( $sqlMenor ); $result2 = $stmt->execute(); $rowMenors = $stmt->fetchAll( PDO::FETCH_ASSOC ); foreach ( $rowMenors as $rowMenor){ $menor = str_replace('.',',', $rowMenor['min(item_vl_imposto)']); //echo 'helio'.$menor; } //FIM MENOR VALOR //INICIO BUSCA TODOS OS USUARIOS DA TABELA E EM CADA UM DELES COLOCA TODOS OS ITENS, MESMO OS QUE ELES NAO COTAO $sqlUsuario = "SELECT * FROM usuarios WHERE usu_nivel = 1 and usu_status = 1 ORDER BY usu_id"; $stmt = $PDO->prepare( $sqlUsuario ); $result3 = $stmt->execute(); $rowUsus = $stmt->fetchAll( PDO::FETCH_ASSOC ); $quantUsuario = $stmt->rowCount(); if($quantUsuario > 0){ foreach ( $rowUsus as $rowUsu){ $usu_id = $rowUsu['usu_id']; //INICIO PRODUTO, USUARIO, E PEGAR OS PRECOS DE TODOS OS ITENS CONFORME INFORMACAO ACIMA $sqlPreco = "SELECT * FROM item_pedido_preco WHERE id_pedido ='".$id."' AND id_produto ='".$id_prod."' AND id_usuario= '".$usu_id."' ORDER BY id_usuario"; $stmt = $PDO->prepare( $sqlPreco ); $result4 = $stmt->execute(); $rowPrecos = $stmt->fetchAll( PDO::FETCH_ASSOC ); $quantPreco = $stmt->rowCount(); if($quantPreco > 0){ foreach ( $rowPrecos as $rowPreco){ $id_usuario = $rowUsu['usu_id']; $item_vl_anterior = str_replace('.',',',$rowPreco['item_vl_imposto']); $item_vl_imposto = str_replace('.',',',$rowPreco['item_vl_imposto']); $usu_titulo = $rowUsu['usu_titulo']; $usu_imposto = $rowUsu['usu_imposto']; if($rowPreco['item_vl_unit'] == 0 or $rowPreco['item_vl_unit'] == NULL): $resultproduto[] = array( 'id_usuario' => $id_usuario, 'item_vl_imposto' => "-", 'item_vl_anterior' => "-", 'usu_titulo' => $usu_titulo, 'usu_imposto' => $usu_imposto ); else: $resultproduto[] = array( 'id_usuario' => $id_usuario, 'item_vl_imposto' => $item_vl_imposto, 'item_vl_anterior' => $item_vl_anterior, 'usu_titulo' => $usu_titulo, 'usu_imposto' => $usu_imposto ); if($item_vl_imposto == $menor): $duplicidade = $duplicidade+1; endif; endif; }//foreach item_preco }else{//se nao tiver no item_preco $id_usuario = $usu_id; $item_vl_anterior = "NULL"; $item_vl_imposto = "NULL"; $usu_titulo = $rowUsu['usu_titulo']; $usu_imposto = $rowUsu['usu_imposto']; $resultproduto[] = array( 'id_usuario' => $id_usuario, 'item_vl_imposto' => $item_vl_imposto, 'item_vl_anterior' => $item_vl_anterior, 'usu_titulo' => $usu_titulo, 'usu_imposto' => $usu_imposto ); }//FIM }//foreach usuario } if($duplicidade > 1)://informa qual item esta com preco em duplicidade $prod_repeat = '*'; else: $prod_repeat = ''; endif; $result[] = array( 'id_pedido' => $id_pedido, 'id_produto' => $id_prod, 'prod_qtd' => $prod_qtd, 'prod_descricao' => $prod_descricao, 'prod_unidade' => $prod_unidade, 'prod_embalagem' => $prod_embalagem, 'item_vl_unit' => $resultproduto, 'itemmenorpreco' => $menor, 'prod_repeat' => $prod_repeat ); $resultproduto = ""; }//foreach item_pedido $this->response($this->json($result), 200); } $this->response('',204); } }Obrigado pela ajuda.
  3. Ola a todos, estou trabalhando com o phpmyadmin e fiz uma consulta que retorna os dados dos produtos por usuário, resumindo tenho 5 tabelas, produto, pedido, item_pedido, item_pedido_preco, e usuarios a minha consulta esta demorando em torno de 1 minuto para retornar queria ver se algem tem alguma ideia para melhorar o desempenho, ficar mais rapido, segue as informações de cada tabela. tabela | quantidade de informações pedido = 1 item_pedido = 350 usuarios = 9 item_pedido_preco = 3150 abaixo segue o sql, estou trabalhando com PHP. private function itemprecofinalizado(){ ini_set('max_execution_time','220');//estou aumenta o tempo de execucao pis a consulta esta muito lenta if($this->get_request_method() != "GET"){ $this->response('',406); } $id =(int)$this->_request['id']; if($id > 0){ //inicio conexao com o banco $DB_HOST = "localhost"; $DB_NAME = "banco"; $DB_PORTA = "3306"; $DB_USER = "root"; $DB_PASS = "root"; $conexao = mysql_connect($DB_HOST,$DB_USER,$DB_PASS) or die ("Erro na Conexão!"); $db = mysql_select_db($DB_NAME, $conexao) or die ("Erro na Conexão!"); //fim conexao com o banco //PEGA TODOS OS ITENS REFERENTE AO PEDIDO $sqlProduto = mysql_query("SELECT * FROM item_pedido i INNER JOIN produto p ON i.id_produto = p.prod_id WHERE i.id_pedido = '".$id."' ORDER BY p.prod_descricao") or die (mysql_error()); $quantProduto = mysql_num_rows($sqlProduto); if($quantProduto > 0 ){ while($rowItem = mysql_fetch_array($sqlProduto)){ $duplicidade = 0;//verifica preco em duplicidade $id_pedido = $rowItem['id_pedido']; $id_prod = $rowItem['id_produto']; $prod_qtd = $rowItem['item_qtd']; $prod_descricao = $rowItem['prod_descricao']; $prod_unidade = $rowItem['prod_unidade']; $prod_embalagem = $rowItem['prod_embalagem']; //INICIO essa parte so pega o menor preco de cada item na tabela item_pedido_preco para depois fazer a comparacao $sqlMenor = mysql_query("SELECT min(item_vl_imposto) FROM item_pedido_preco r WHERE r.id_pedido ='".$id."' AND r.id_produto ='".$id_prod."' and r.item_vl_imposto != 0") or die (mysql_error()); $rowMenor = mysql_fetch_assoc($sqlMenor); $menor = str_replace('.',',', $rowMenor['min(item_vl_imposto)']); //FIM MENOR VALOR //INICIO BUSCA TODOS OS USUARIOS DA TABELA E EM CADA UM DELES COLOCA TODOS OS ITENS, MESMO OS QUE ELES NAO COTAO $sqlUsuario = mysql_query("SELECT * FROM usuarios WHERE usu_nivel = 1 and usu_status = 1 ORDER BY usu_id") or die (mysql_error()); $quantUsuario = mysql_num_rows($sqlUsuario); if($quantUsuario > 0){ while($rowUsu = mysql_fetch_array($sqlUsuario)){ $usu_id = $rowUsu['usu_id']; //INICIO PRODUTO, USUARIO, E PEGAR OS PRECOS DE TODOS OS ITENS CONFORME INFORMACAO ACIMA $sqlPreco = mysql_query("SELECT * FROM item_pedido_preco WHERE id_pedido ='".$id."' AND id_produto ='".$id_prod."' AND id_usuario= '".$usu_id."' ORDER BY id_usuario") or die (mysql_error()); $quantPreco = mysql_num_rows($sqlPreco); if($quantPreco > 0){ while($rowPreco = mysql_fetch_array($sqlPreco)) { $id_usuario = $rowUsu['usu_id']; $item_vl_anterior = str_replace('.',',',$rowPreco['item_vl_imposto']); $item_vl_imposto = str_replace('.',',',$rowPreco['item_vl_imposto']); $usu_titulo = $rowUsu['usu_titulo']; $usu_imposto = $rowUsu['usu_imposto']; if($rowPreco['item_vl_unit'] == 0 or $rowPreco['item_vl_unit'] == NULL): $resultproduto[] = array( 'id_usuario' => $id_usuario, 'item_vl_imposto' => "-", 'item_vl_anterior' => "-", 'usu_titulo' => $usu_titulo, 'usu_imposto' => $usu_imposto ); else: $resultproduto[] = array( 'id_usuario' => $id_usuario, 'item_vl_imposto' => $item_vl_imposto, 'item_vl_anterior' => $item_vl_anterior, 'usu_titulo' => $usu_titulo, 'usu_imposto' => $usu_imposto ); if($item_vl_imposto == $menor): $duplicidade = $duplicidade+1; endif; endif; }//while item_preco }else{//se nao tiver no item_preco $id_usuario = $usu_id; $item_vl_anterior = "NULL"; $item_vl_imposto = "NULL"; $usu_titulo = $rowUsu['usu_titulo']; $usu_imposto = $rowUsu['usu_imposto']; $resultproduto[] = array( 'id_usuario' => $id_usuario, 'item_vl_imposto' => $item_vl_imposto, 'item_vl_anterior' => $item_vl_anterior, 'usu_titulo' => $usu_titulo, 'usu_imposto' => $usu_imposto ); }//FIM }//while usuario } //FIM if($duplicidade > 1)://informa qual item esta com preco em duplicidade $prod_repeat = '*'; else: $prod_repeat = ''; endif; $result[] = array( 'id_pedido' => $id_pedido, 'id_produto' => $id_prod, 'prod_qtd' => $prod_qtd, 'prod_descricao' => $prod_descricao, 'prod_unidade' => $prod_unidade, 'prod_embalagem' => $prod_embalagem, 'item_vl_unit' => $resultproduto, 'itemmenorpreco' => $menor, 'prod_repeat' => $prod_repeat ); $resultproduto = ""; }//while item_pedido $this->response($this->json($result), 200); } $this->response('',204); } }segue abaixo a imgem com o retorno da consulta. Grato pela ajuda.
  4. Bom dia Denis, desculpa por ter postado aq, vou para o site de PHP, muito obrigado pela atenção. 1) entendi sim, essa condição ficar sem dentro do WHERE 2) existe indice para id_produto, e id_pedido na tabela item_pedido prod_id é prymary key prod_descricao não é unike key
  5. Ola a todos, estou trabalhando com o phpmyadmin e fiz uma consulta que retorna os dados dos produtos por usuário, resumindo tenho 5 tabelas, produto, pedido, item_pedido, item_pedido_preco, e usuarios a minha consulta esta demorando em torno de 1 minuto para retornar queria ver se algem tem alguma ideia para melhorar o desempenho, ficar mais rapido, segue as informações de cada tabela. tabela | quantidade de informações pedido = 1 item_pedido = 350 usuarios = 9 item_pedido_preco = 3150 abaixo segue o sql, estou trabalhando com PHP. private function itemprecofinalizado(){ ini_set('max_execution_time','220');//estou aumenta o tempo de execucao pis a consulta esta muito lenta if($this->get_request_method() != "GET"){ $this->response('',406); } $id =(int)$this->_request['id']; if($id > 0){ //inicio conexao com o banco $DB_HOST = "localhost"; $DB_NAME = "banco"; $DB_PORTA = "3306"; $DB_USER = "root"; $DB_PASS = "root"; $conexao = mysql_connect($DB_HOST,$DB_USER,$DB_PASS) or die ("Erro na Conexão!"); $db = mysql_select_db($DB_NAME, $conexao) or die ("Erro na Conexão!"); //fim conexao com o banco //PEGA TODOS OS ITENS REFERENTE AO PEDIDO $sqlProduto = mysql_query("SELECT * FROM item_pedido i INNER JOIN produto p ON i.id_pedido = '".$id."' AND i.id_produto = p.prod_id ORDER BY p.prod_descricao") or die (mysql_error()); $quantProduto = mysql_num_rows($sqlProduto); if($quantProduto > 0 ){ while($rowItem = mysql_fetch_array($sqlProduto)){ $duplicidade = 0;//verifica preco em duplicidade $id_pedido = $rowItem['id_pedido']; $id_prod = $rowItem['id_produto']; $prod_qtd = $rowItem['item_qtd']; $prod_descricao = $rowItem['prod_descricao']; $prod_unidade = $rowItem['prod_unidade']; $prod_embalagem = $rowItem['prod_embalagem']; //INICIO essa parte so pega o menor preco de cada item na tabela item_pedido_preco para depois fazer a comparacao $sqlMenor = mysql_query("SELECT min(item_vl_imposto) FROM item_pedido_preco r WHERE r.id_pedido ='".$id."' AND r.id_produto ='".$id_prod."' and r.item_vl_imposto != 0") or die (mysql_error()); $rowMenor = mysql_fetch_assoc($sqlMenor); $menor = str_replace('.',',', $rowMenor['min(item_vl_imposto)']); //FIM MENOR VALOR //INICIO BUSCA TODOS OS USUARIOS DA TABELA E EM CADA UM DELES COLOCA TODOS OS ITENS, MESMO OS QUE ELES NAO COTAO $sqlUsuario = mysql_query("SELECT * FROM usuarios WHERE usu_nivel = 1 and usu_status = 1 ORDER BY usu_id") or die (mysql_error()); $quantUsuario = mysql_num_rows($sqlUsuario); if($quantUsuario > 0){ while($rowUsu = mysql_fetch_array($sqlUsuario)){ $usu_id = $rowUsu['usu_id']; //INICIO PRODUTO, USUARIO, E PEGAR OS PRECOS DE TODOS OS ITENS CONFORME INFORMACAO ACIMA $sqlPreco = mysql_query("SELECT * FROM item_pedido_preco WHERE id_pedido ='".$id."' AND id_produto ='".$id_prod."' AND id_usuario= '".$usu_id."' ORDER BY id_usuario") or die (mysql_error()); $quantPreco = mysql_num_rows($sqlPreco); if($quantPreco > 0){ while($rowPreco = mysql_fetch_array($sqlPreco)) { $id_usuario = $rowUsu['usu_id']; $item_vl_anterior = str_replace('.',',',$rowPreco['item_vl_imposto']); $item_vl_imposto = str_replace('.',',',$rowPreco['item_vl_imposto']); $usu_titulo = $rowUsu['usu_titulo']; $usu_imposto = $rowUsu['usu_imposto']; if($rowPreco['item_vl_unit'] == 0 or $rowPreco['item_vl_unit'] == NULL): $resultproduto[] = array( 'id_usuario' => $id_usuario, 'item_vl_imposto' => "-", 'item_vl_anterior' => "-", 'usu_titulo' => $usu_titulo, 'usu_imposto' => $usu_imposto ); else: $resultproduto[] = array( 'id_usuario' => $id_usuario, 'item_vl_imposto' => $item_vl_imposto, 'item_vl_anterior' => $item_vl_anterior, 'usu_titulo' => $usu_titulo, 'usu_imposto' => $usu_imposto ); if($item_vl_imposto == $menor): $duplicidade = $duplicidade+1; endif; endif; }//while item_preco }else{//se nao tiver no item_preco $id_usuario = $usu_id; $item_vl_anterior = "NULL"; $item_vl_imposto = "NULL"; $usu_titulo = $rowUsu['usu_titulo']; $usu_imposto = $rowUsu['usu_imposto']; $resultproduto[] = array( 'id_usuario' => $id_usuario, 'item_vl_imposto' => $item_vl_imposto, 'item_vl_anterior' => $item_vl_anterior, 'usu_titulo' => $usu_titulo, 'usu_imposto' => $usu_imposto ); }//FIM }//while usuario } //FIM if($duplicidade > 1)://informa qual item esta com preco em duplicidade $prod_repeat = '*'; else: $prod_repeat = ''; endif; $result[] = array( 'id_pedido' => $id_pedido, 'id_produto' => $id_prod, 'prod_qtd' => $prod_qtd, 'prod_descricao' => $prod_descricao, 'prod_unidade' => $prod_unidade, 'prod_embalagem' => $prod_embalagem, 'item_vl_unit' => $resultproduto, 'itemmenorpreco' => $menor, 'prod_repeat' => $prod_repeat ); $resultproduto = ""; }//while item_pedido $this->response($this->json($result), 200); } $this->response('',204); } }segue abaixo a imgem com o retorno da consulta. Grato pela ajuda
×
×
  • Criar Novo...