Ir para conteúdo
Fórum Script Brasil

Eder Cuer

Membros
  • Total de itens

    11
  • Registro em

  • Última visita

Posts postados por Eder Cuer

  1. Eae galera, estou com alguns problemas no postgreSQL.

    Estou testando o desempenho dele e acabei tendo problemas de inserção e select.

    Estou utilizando quatro banco de dados, eles tem os valores de 1, 10, 50 e 100 milhões. Basicamente estou realizando testes de CRUD.

    Ao realizar a procedure para inserção de 100 milhões de registros me aparece um erro "ERROR: could not extend file "base/16385/16604.1": wrote only 4096 of 8192 bytes at block 218508

    HINT: Check free disk space."

    Ao realizar o select a partir da tabela de 50 milhões aparece a mensagem "ERROR: out of memory"

    Pesquisei algumas coisas sem muito sucesso, gostaria da ajuda de vocês, valeu!

  2. Eae galera, eu fiquei alguns minutos pra arrumar um nome pra esse tópico e ainda assim ficou meio confuso, me desculpem.

    Eu estou tentando desenvolver um sisteminha de calcular frete.

    Em um formulário php o usuário escolhe cidade e estado (origem/destino), assim que o usuário clica em procurar o sistema busca as transportadoras que atendem aquelas cidades e estados, e junto com as transportadoras aparece um mapa.

    Agora começa meu probleminha, bom... assim que o usuário clica em "Traçar Rota" eu pego a distância de cidade para cidade, envio por $.post(), pego a distância e atualizo as divs "preço" (são criadas dinamicamente, dependendo de quantas transportadoras atendem aquela rota), fiz isso só pra teste mesmo.

    No banco de dados de cada transportadora tem um campo "precoMetro", que é quanto uma transportadora cobra por metro. Agora eu queria saber um jeito de ao invés de colocar a distância, eu colocar o preço mesmo, fazer os cálculos.

    Pessoal se for uma coisa muito simples eu peço desculpa, não entendo muito de javascript/jquery/ajax.

    Vou postar algumas imagens pra vocês entenderem melhor, e meu código também

    imgel.jpg

    img6r.jpg

    Aqui é o formulário onde eu chamo a função:

    <div class="left">
            <form id="formulario" name="formulario" onsubmit="calcRoute(); return false;" >
                    <label for="inputStart" class="inputStart" ></label> 
                    <input type="text" readonly="readonly" class="text" value="'.htmlentities($corigem).','.htmlentities($eorigem).'"
     id="inputStart"  />
                    <br />
                    <label for="inputEnd" class="inputEnd"></label> <input type="text" readonly="readonly" class="text" value="'.htmlentities($cdestino).','.htmlentities($edestino).'"
     id="inputEnd" />
                    <input type="submit" id="tracar" name="tracar" value="Traçar Rota" />
                    <input type="text" id="distancia" name="distancia" />
                                                                                            
            </form> 
                                                                                    
    </div>
    Aqui é minha função
    function calcRoute() {
            if (marker) marker.setMap(null);
            route = true;
            var start = document.getElementById("inputStart").value;
            var end = document.getElementById("inputEnd").value;
                            
            var request = {
                    origin:start, 
                    destination:end,
                    travelMode: google.maps.DirectionsTravelMode.DRIVING
            };
            directionsService.route(request, function(response, status) {
                    if (status == google.maps.DirectionsStatus.OK) {
                            directionsDisplay.setDirections(response);
                            var distancia;
                                                                                                                                                       
                            var rota = response.routes[0]; 
                            var etapa = rota.legs[0]; 
                                                                                    
                            distancia = etapa.distance.value;
                                                    
                            document.getElementById("distancia").value = distancia;
    
                     }
                                                                                            
                    var distancia = $("#distancia").val();
                   
                                                                                            
                    $.post("calcula.php", { distancia:distancia, ';for( $i = 0; $i < mysql_num_rows($result); $i++ ){echo 'preço'.$cod.':preço'.$cod.',';}echo '}, function(get_retorno) {';
                                                                                                                                                                                            
                    for ( $i = 0; $i < mysql_num_rows($result); $i++ )
                    {
                                                                                                    
                            $cod  = mysql_result($result, $i, 'cod_transp');
                            $nome = mysql_result($result, $i, 'nome');
                            echo '$("#preço'.$cod.'").show("slow").text(get_retorno);'
    ; 
                            echo "\n";
                                                                    
                    }                                                                        
                    echo '  
            });
                                                                                            
    });

  3. Eae Jhonas, consegui resolver com muita ajuda.

    Ficou assim:

    SELECT t2.cod_transp,
           t2.nome
    FROM   (SELECT t1.cod_transp,
                   t1.nome
            FROM   transportadora t1
                   INNER JOIN mrh_transportadora mt1
                     ON mt1.cod_transp = t1.cod_transp
                   INNER JOIN mrh_cidade mc1
                     ON mc1.cod_mrh = mt1.cod_mrh
            WHERE  mc1.cod_cid = $Origem) t2
           INNER JOIN mrh_transportadora mt2
             ON mt2.cod_transp = t2.cod_transp
           INNER JOIN mrh_cidade mc2
             ON mc2.cod_mrh = mt2.cod_mrh
    WHERE  mc2.cod_cid = $Destino

    Brigadão pela ajuda que você deu.

  4. Salve Jhonas, vlw por responder..

    Eu já tentei do jeito que você me disse, e ele sempre me retorna vazio os resultados

    Exemplo:

    SELECT DISTINCT transportadora.cod_transp, nome
    FROM mrh_transportadora
    INNER JOIN transportadora ON transportadora.cod_transp = mrh_transportadora.cod_transp
    INNER JOIN mrh_cidade ON mrh_cidade.cod_mrh = mrh_transportadora.cod_mrh
    WHERE mrh_cidade.cod_cid = 14 AND mrh_cidade.cod_cid = 15

  5. Eae galera, acabei de me cadastrar :rolleyes:

    To com um problema que ta me deixando doido da vida, já tive ajuda de uns amigos mas nada resolveu, vou explicar:

    Estou tentando fazer um filtro, mas estou me enrolando na parte do select, vou tentar explicar.

    É um sistema de transportadora, onde um usuario escolhe a cidade origem e cidade destino, então o sistema deveria retornar as transportadoras que atendam a essas duas cidades.

    Meu sistema tem as seguintes tabelas:

    mrh                    mrh_cidade           mrh_transportadora
    - cod_mrh            - fk cod_cid           - fk cod_transp    
    - nome                - fk cod_mrh          - fk cod_mrh
    - fk cod_estado
    Fiz dois select, esse com inner join:
    SELECT transportadora.cod_transp, nome
    FROM mrh_transportadora
    INNER JOIN transportadora ON transportadora.cod_transp = mrh_transportadora.cod_transp
    INNER JOIN mrh_cidade ON mrh_cidade.cod_mrh = mrh_transportadora.cod_mrh
    WHERE mrh_cidade.cod_cid
    IN ( 13, 14 ) 
    GROUP BY cod_transp
    E esse:
    SELECT t.nome, t.cod_transp
    FROM transportadora t, cidade c, mrh, mrh_transportadora mt, mrh_cidade mc
    WHERE c.cod_cid = mc.cod_cid
    AND mrh.cod_mrh = mc.cod_mrh
    AND t.cod_transp = mt.cod_transp
    AND mrh.cod_mrh = mt.cod_mrh
    AND c.cod_cid
    IN (
    '13', '14'
    )

    No inicio achei que tava certo, mas ta acontecendo o seguinte, vamos supor:

    A transportadora A, B atendem as cidades de codigo 14, 15. A transportadora C atende 14, 15 e 33.

    Se eu faço o select com 13 e 14, me aparece todas as transportadoras.

    Se eu faço o select com 15 e 33, me aparece só uma transportadora.

    Mas se faço o select com 14 e 33 me aparece todas as transportadoras, mas no caso do meu filtro não deveria aparecer nenhum, porque nenhuma transportadora atende a essas duas cidades.

    Galera desculpa se ta grande aqui, tentei explicar da melhor forma possivel.

    Quem puder me ajudar eu agradeço.

×
×
  • Criar Novo...