Ir para conteúdo
Fórum Script Brasil

wash

Membros
  • Total de itens

    400
  • Registro em

  • Última visita

Posts postados por wash

  1. Oi Rafael!

    Se o que você precisa é somar as presenças e ausências, partindo da idéia de que 'presenca' = 0 é ausência, acrescente na sua query de busca:

    SUM(IF(presenca=1,1,0)) as presencas, SUM(IF(presenca=0,1,0)) as ausencias

    Obs.: No trecho que você enviou não dá pra ver onde a variável $rs_relatorio foi criada;

    Você está tentando usá-la em: mysql_fetch_array($rs_relatorio);

  2. Olá!

    Acho que percebi o que acontece.

    No construct da sua class Conexao, você já manda conectar ao banco de dados, quando as variáveis:
    private $servidor;
    private $banco;
    private $usuario;
    private $senha;
    Ainda não foram definidas.

    Ou seja, quando você cria o objeto em: $conectar=new Conexao(); a conexão já acontece! Já tenta ser estabelecida.

    Sugiro que remova a conexão do __construct
    ou já defina os valores das variáveis privadas dentro da class Conexao

  3. Olá Fábio!

    Não sei se entendi direito...

    Mas o que muda nos dois trechos de código são: o nome do $_FILES e a query de inserção.

    Tente unificar os dois trechos assim:

    $filename = ($_FILES['vendedor']["tmp_name"]);
    $abraArq = fopen($filename, "r");
    $trunc = "truncate table senha";
    $executar = $pdo->exec($trunc);
    while (($row = fgetcsv($abraArq, 2048, ";")) !== FALSE) {
        // defina aquery para cliente
        $sql = "insert into cliente (CODIGO_cliente,NOME_cliente,STATUS_cliente,SENHA_URA,DATA_EXPIRACAO) values('$row[1]','$row[5]','$row[6]','$row[7]','$row[11]')";
        // e somente se for arquivo de vendedor, a query será alterada
        if (isset($_FILES['vendedor'])) {
            $sql = "insert into vendedor (CODIGO_VENDEDOR, NOME_VENDEDOR, STATUS_VENDEDOR, SENHA_URA, DATA_EXPIRACAO) values('$row[0]', '$row[2]', '$row[3]', '$row[7]', '$row[8]')";
        }
        $executar = $pdo->exec($sql);
    }

     

    O conceito que você menciona é chamado DRY - Don't Repeat Yourself (em português: Não repita a si mesmo), é o que usamos para evitar a escrita de trechos de código iguais, veja: https://pt.wikipedia.org/wiki/Don%27t_repeat_yourself

  4. Olá Shelter!

    O sr. tem toda razão!

    Fui grosseiro e desnecessário!

    Tenha certeza de que suas colocações vão me fazer buscar ser uma pessoa melhor.

    Sugiro que abra um novo post, com sua questão atual, para que outros membros do fórum possam te ajudar.

  5. Prezado sr.
    Creio que a leitura rápida não lhe permitiu a fácil compreensão do texto.

    Leia com calma e atenção:

    Depois de executada a função, pode testar assim:

    echo '<p>O conteúdo da variável $Nome é: '.$Nome.'</p>';
    echo '<p>O conteúdo da variável $status é: '.$status.'</p>';

    Esse trecho não deve ser incluído dentro da função! Assim o sr. avacalha tudo! Gentileza não esculiambar o código ainda mais!!!


    Vamos pensar em qual seria o trecho em que a função é executada??? 
    Preste atenção! O lugar onde a função é criada é diferente do lugar onde a função é executada!!!

    A função é executada aqui:

    tratarArrayPraMim($ami->queueStatus($a));

    Então o trecho sugerido acima(aquele com os parágrafos), deve ser inserido Depois de executada a função!!!

    Então, com essa interpretação básica do texto, creio eu, que o ideal seria proceder assim:

    tratarArrayPraMim($ami->queueStatus($a));
    echo '<p>O conteúdo da variável $Nome é: '.$Nome.'</p>';
    echo '<p>O conteúdo da variável $status é: '.$status.'</p>';

    Agora... se o sr. não quer mais que apareça tuuuuudo! Substitua, na função a linha:

    echo $k . ': ' . $v . '<br>';

    Por:

    $$k = $v;

    Leia com bastante calma e atenção! A palavrinha Substitua, citada acima, quer dizer: Troque uma linha pela outra.

  6. Olá!

    Se for usar mysqli, faça assim:

    <?php
    
    // arquivo para conexão com o mysql
    // definição de variáveis para conexão
    $host = 'localhost'; // endereço do banco
    $user = 'root'; // usuário
    $pass = '';  // senha
    $database = 'scriptbrasil'; // nome do banco de dados
    
    // estabelecer conexão:
    $sqli = new mysqli($host, $user, $pass);
    
    // verificando se conectou de boas:
    if ($sqli->connect_error) {
        // se houver alguma falha, exibe mensagem:
        echo '<p class="error">Falha na conexão: ' . $sqli->connect_error . '</p>';
    }
    
    // definir o padrão de caracteres
    if (!$sqli->set_charset('utf8')) {
        // se não conseguir definir o padrão de caracteres, exibe o padrão disponível
        echo "<p class='error'>Seu charset não é utf8, chefe!<br>$sqli->character_set_name()</p>";
    }
    
    // selecionar/abrir o banco de dados para trabalhar
    if (!$sqli->select_db($database)) {
        // se o banco de dados não for encontrado
        echo "<p class='error'>O banco de dados: $database não foi encontrado, chefe!</p>";
    }
    
    

     

  7. Mano! Não consegui entender o que o sr. queria fazer, mas testei aqui e ficou assim:

    Arquivo database.sql:

    -- tabelas do banco de dados
    
    drop table if exists nomeescola;
    create table nomeescola(
    id int(3) primary key auto_increment,
    nome varchar(30)
    );
    insert into nomeescola(nome) values
    ('Escola Estadual'),('Escola Municipal'),('Escola Federal');
    
    --
    
    drop table if exists turma;
    create table turma(
    fk_escola int(3),
    nome varchar(30)
    );
    insert into turma values
    (1, 'Turma Arara Azul'),(1, 'Turma Pássaro Azul'),
    (2, 'Turma da Távola Redonda'), (2, 'Turma da Bola Quadrada'),
    (3, 'Turma do Círculo de Stone Henge');

    Arquivo js.js

    function CriaRequest() {
        try {
            request = new XMLHttpRequest();
        } catch (IEAtual) {
    
            try {
                request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (IEAntigo) {
    
                try {
                    request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (falha) {
                    request = false;
                }
            }
        }
    
        if (!request)
            alert("Seu Navegador não suporta Ajax!");
        else
            return request;
    }
    
    function getDados() {
    
        // Declaração de Variáveis
        var teste = document.getElementById("escola").value;
        var result = document.getElementById('result');
        var xmlreq = CriaRequest();
    
        // Exibi a imagem de progresso
        //result.innerHTML = '<img src="Progresso1.gif"/>';
    
        // Iniciar uma requisição
        xmlreq.open("GET", "teste.php?escola=" + teste, true);
    
        // Atribui uma função para ser executada sempre que houver uma mudança de ado
        xmlreq.onreadystatechange = function () {
    
            // Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
            if (xmlreq.readyState == 4) {
    
                // Verifica se o arquivo foi encontrado com sucesso
                if (xmlreq.status == 200) {
                    result.innerHTML = xmlreq.responseText;
                } else {
                    result.innerHTML = "Erro: " + xmlreq.statusText;
                }
            }
        };
        xmlreq.send(null);
    }

    Arquivo connect.php

    <?php
    
    // arquivo para conexão com o mysql
    // definição de variáveis para conexão
    $host = 'localhost'; // endereço do banco
    $user = 'root'; // usuário
    $pass = '';  // senha
    $database = ''; // nome do banco de dados
    // se estiver em was
    if (preg_match('/^(was)/', $_SERVER['SERVER_NAME'])) {
        $database = 'scriptbrasil'; // nome do banco de dados
        $pass = '';
    }
    
    // estabelecer conexão:
    $sqli = new mysqli($host, $user, $pass);
    
    // verificando se conectou de boas:
    if ($sqli->connect_error) {
        // se houver alguma falha, exibe mensagem:
        echo '<p class="error">Falha na conexão: ' . $sqli->connect_error . '</p>';
    }
    
    // definir o padrão de caracteres
    if (!$sqli->set_charset('utf8')) {
        // se não conseguir definir o padrão de caracteres, exibe o padrão disponível
        echo "<p class='error'>Seu charset não é utf8, chefe!<br>$sqli->character_set_name()</p>";
    }
    
    // selecionar/abrir o banco de dados para trabalhar
    if (!$sqli->select_db($database)) {
        // se o banco de dados não for encontrado
        echo "<p class='error'>Banco de dados não encontrado, chefe!</p>";
    }
    
    

    Arquivo teste.php

    <script src="js.js" type="text/javascript"></script>
    <?php
    error_reporting(E_ALL);
    // inclui arquivo de conexão com o banco de dados, basta ser incluido apenas uma única vez
    include 'connect.php';
    // define a query de busca
    $sql = 'SELECT * FROM nomeescola ORDER BY nome DESC';
    // executa a query de busca
    $result = $sqli->query($sql);
    // verifica se houve falha na execução da query:
    if ($sqli->error) {
        // mostra erro na tela:
        die($sqli->error);
    } elseif ($result->num_rows) { // se não houve falhas e há algum resultado
        // inicia o select
        $select = "<select name='escola' id='escola' onchange='getDados();'>
        <option value ='--'> selecione</option>";
        while ($dados = $result->fetch_assoc()) {
            // adiciona options ao select
            $select.= "<option value='$dados[id]'>$dados[nome]</option>";
        }
        // mostra select na tela:
        echo $select . '</select>';
    } else { // se nada foi encontrado:
        echo "<option value='none'>Nenhum resultado encontrado!</option>";
    }
    ?>
    
    <label> Quantidade de turmas: </label>
    <?php
    if (isset($_GET['escola'])) {
        $teste = urlencode($_GET['escola']);
        $sql = "SELECT * FROM turma WHERE fk_escola = $teste";
        sleep(1);
    // executa a query de busca
        $result = $sqli->query($sql);
    // verifica se houve falha na execução da query:
        if ($sqli->error) {
            // mostra erro na tela:
            die($sqli->error);
        } elseif ($result->num_rows) { // se não houve falhas e há algum resultado
            // inicia o select
            $select = "<select name='quantidade' id='quantidade' onchange='getDados();'>";
            while ($dados = $result->fetch_assoc()) {
                // adiciona options ao select
                $select.= "<option value='$dados[nome]'>$dados[nome]</option>";
            }
            // mostra select na tela:
            echo $select . '</select>';
        } else { // se nada foi encontrado:
            echo "<option value='none'>Nenhum resultado encontrado!</option>";
        }
    }
    ?>
    <div id="result"></div>

    Mas juro que não entendi!

  8. Olá Marcio! Segundo o W3s, mantenedor do HTML5, ids devem ser iniciadas com characteres (letras) somente depois é que se pode usar números.
    Veja em: http://www.w3schools.com/tags/att_global_id.asp
    Tente colocar o nome da tabela e um underline antes do número da id, assim:

    <?php 
                $selecionaColuna1 = mysql_query("SELECT * FROM tabela1");
                $contaColuna1 = @mysql_num_rows($selecionaColuna1);
                
                If($contaColuna1 <= ){
                    echo "<p>Sem link Nesta coluna</p>";
                }else{
                    while ($linhaTb = mysql_fetch_array($selecionaColuna1)) {
                        $nome1 = $linhaTb ['nome1'];
                        $link60 = $linhaTb ['link60'];
                        $id = $linhaTb ['id'];
    
            ?>
                    <li><a id="tabela1_<?php echo $id; ?>" onclick="myFunction(event)" target="_blank" href="<?php echo $link60; ?>"><?php echo $nome1; ?></a></li>
                                        
            <?php } } ?>

    P.S.

    Atualize seu php!

    Há mais de 3 anos o php.net, recomenda fortemente que não se use mais as extensões mysql_*

    Veja:

    mysql_.jpg

  9. Olá!

    Que bom q já resolveu!

    Eu estava reescrevendo o seu script de maneira a evitar algumas repetições.

    Ah! Sempre que puder, use echo ao invés de print, o echo é mais rápido!

    Sugiro que use <th></th> pra fazer o cabeçalho da tabela, pois já vêm com texto centralizado e em negrito, leia em: http://www.w3schools.com/tags/tag_th.asp

    E não entendi porque ter uma tabela dentro de um formulário, que não tem nenhum campo de formulário... aquele formulário com name='CadInfo' faz algum sentido?

    Veja como tava ficando:

    <!doctype html>
    <html>
        <head>
            <meta charset='utf-8'>
        </head>
        <body>
            <form method="post">
                
                <label>Busca:</label>
                <input type="text" name="busca"><br>
                <label>Data Inicial:</label>
                <input type="date" name="data_inicial"><br>
                <label>Data Final:</label>
                <input type="date" name="data_final"><br>
                <input type="submit" value="buscar">
            </form>
            <?php
    //Conexão com o Banco de Dados
            $conexao = mysql_connect('localhost', 'root', '') or die('Não foi possí­vel conectar: ' . mysql_error());
    //Conexão bem sucedida seleciona o BD
            $db_selected = mysql_select_db('scriptbrasil');
    
            $start_query = "SELECT * FROM
                    assentamentos a, usuarios u, ocorrencias o, 
                    problemas p, localizacao l, instituicao i, sistemas s 
                    WHERE ";
            $end_query = " and a.responsavel = u.user_id 
                and a.data = o.data_fechamento 
                and p.prob_id = o.problema 
                and o.local = l.loc_id
                and i.inst_cod = o.instituicao 
                and s.sis_id = o.sistema 
                ORDER BY o.numero DESC";
    
            if (isset($_POST['busca']) && !empty($_POST['busca'])) {
    //todos usuarios por periodo
                $middle_query = " o.data_abertura BETWEEN '$ymdinicio' AND '$ymdfim'";
            } elseif (isset($_POST['data_inicial']) && !empty($_POST['data_inicial']) && isset($_POST['data_final']) && !empty($_POST['data_final'])) {
    //so usuario 
                $middle_query = " u.nome = '$busca'";
            } else {
    //usuario por periodo
                $middle_query = " o.data_abertura BETWEEN '$ymdinicio' AND '$ymdfim' and u.nome = '$busca'";
            }
    
            echo "<table width='100%' border='0' align='center' cellpadding='1' cellspacing='2' class='full_table_list'>
    <tr class='tabela_cinza'>
    <td align='center' colspan='10'><span class='texto_negrito'>Relatório Geral</span></td>
    </tr>
    <tr>
    <th width='8%'>Número</th>
    <th width='8%'>Técnico</th>
    <th width='8%'>Problema</th>
    <th width='16%'>Descriçao do problema</th>
    <th width='16%'>Soluçao do Problema</th>
    <th width='8%'>Área</th>
    <th width='8%'>Unidade</th>
    <th width='12%'>Local</th>
    <th width='8%'>Data inicial</th>
    <th width='8%'>Data final</th>
    </tr>
    </table>";
            $query = $start_query . $middle_query . $end_query;
            echo '<pre>Query montada: ';
            print_r($query);
            echo '</pre>';
            $qr = mysql_query($query) or die(mysql_error());
            while ($linha = mysql_fetch_assoc($qr)) {
                echo "<form action='' method='post' name='CadInfo' target='_parent' id='CadInfo'>
    <table width='100%' border='0' align='center' cellpadding='1' cellspacing='2' class='full_table_list'>
    <tr>
    <td align='center' width='8%'><span class='texto_center'>$linha[numero]</span></td>
    <td align='center' width='8%'><span class='texto_center'>$linha[nome]</span></td>
    <td align='center' width='8%'><span class='texto_center'>$linha[problema]</span></td>
    <td align='center' width='16%'><span class='texto_center'>$linha[descricao]</span></td>
    <td align='center' width='16%'><span class='texto_center'>$linha[assentamento]</span></td>
    <td align='center' width='8%'><span class='texto_center'>$linha[sistema]</span></td>
    <td align='center' width='8%'><span class='texto_center'>$linha[inst_nome]</span></td>
    <td align='center' width='12%'><span class='texto_center'>$linha[local]</span></td>
    <td align='center' width='8%'><span class='texto_center'>$linha[data_abertura]</span></td>
    <td align='center' width='8%'><span class='texto_center'>$linha[data_fechamento]</span></td>
    </tr>
    </table>
    </form>";
            }
            ?>
        </body>
    </html>

     

  10. Olá!

    Já que queres aprender:

    Sugiro que já comece com html5

    As imagens que o sr. mostra quando passa o mouse em cima dos links, estão dentro de divs.

    Logo tudo o que colocares dentro das divs, só aparecerão tb, quando as divs aparecerem.

    Podes colocar os preços dentro das mesmas divs onde estão as imagens ocultas
     

  11. Olá! acrescente na função, abaixo da linha:  echo $k . ': ' . $v . '<br>';

    O seguinte trecho:

     $$k = $v; 

    Assim, as variáveis terão os nomes dos índices.

    Despois de executada a função, pode testar assim:

    echo '<p>O conteúdo da variável $Nome é: '.$Nome.'</p>';
    echo '<p>O conteúdo da variável $status é: '.$status.'</p>';

     

    Só lembrando que, caso em qualquer nível haja um índice com o mesmo nome, somente o último valor atribuído permanecerá.

  12. Olá Josmai, tente assim:
    Onde você tem echo "<table cellspacing='0' ...

    Acrescente a class, ficando assim:  echo "<table class='hide-last-td-itens' cellspacing='0' ...

    E no seu arquivo .css que é linkado lá dentro da tag <head></head>

    coloque o trecho css:

    table.hide-last-td-itens tr td:last-child *{display:none;}
    table.hide-last-td-itens tr:hover td:last-child *{display:inline-block;}
  13. Sr. Shelter.

    Creio que o sr. é uma pessoa muito ocupada e não teve tempo suficiente para ler com atenção.

    Mas a sua atenção será fundamental para o bom funcionamento do seu script. Tente acompanhar o raciocínio:

    1) No seu arquivo de funções acrescente a seguinte função:

    Para manter a organização, criamos as funções em um arquivo separado, para que possamos reutilizá-las(Sem a necessidade de repetir código) em todo o projeto;

    Partindo da idéia de que o sr. ainda não tenha organizado suas funções separadamente em um arquivo, sugiro que crie um arquivo chamado helpers.php, com o seguinte conteúdo:

     

    <?php
    
    function tratarArrayPraMim($a) {
        foreach ($a as $k => $v) {
            if (is_array($v)) {
                tratarArrayPraMim($v);
            } else {
                echo $k . ': ' . $v . '<br>';
            }
        }
    }

     

    2) no arquivo em o que o sr. está usando agora, proceda da seguinte maneira:

    <!doctype html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>Documento sem título</title>
        </head>
    
        <body>
            <?php
            // inclua seu arquivo de funções aqui (antes de usar a função)
            include 'helpers.php';
            include "phpAMI.php";
            $ami = new phpAMI("admin", "shelter");
            $login = $ami->login();
            if ($login["Response"] == "Success") {
                // e somente aqui, use a função que foi previamente criada
                tratarArrayPraMim($ami->queueStatus($a));
                $ami->logoff();
            }
            ?>
        </body>
    </html>

     

    Entendeu a ordem sequencial lógica?

    Primeiro a função precisa existir!

    Só depois é que teremos a possibilidade de fazer uso dela!

  14. Olá!

    Tente assim:

    1) Na sua tabela, coloque class='hide-last-td-itens'

    <table class='hide-last-td-itens' ...

    2) No seu css coloque:

    table.hide-last-td-itens tr td:last-child *{display:none;}
    table.hide-last-td-itens tr:hover td:last-child *{display:inline-block;}

     

  15. Olá!

    Mudou apenas a parte em que é criada uma função e que ela é recursiva

    O que, neste caso, a recursividade faz:
    O seu array pode ter vários níveis de arrays dentro dele que todos serão exibidos

  16. E função recursiva, o sr. já sabe fazer?

    Vamos tentar assim:

    No seu arquivo de funções acrescente a seguinte função:

    function tratarArrayPraMim($a) {
        foreach ($a as $k => $v) {
            if (is_array($v)) {
                tratarArrayPraMim($v);
            } else {
                echo $k . ': ' . $v . '<br>';
            }
        }
    }

    E no lugar de print_r($ami->queueStatus());

    Coloque: tratarArrayPraMim($ami->queueStatus());

×
×
  • Criar Novo...