Ir para conteúdo
Fórum Script Brasil

alessandro.albuquerque

Membros
  • Total de itens

    14
  • Registro em

  • Última visita

Posts postados por alessandro.albuquerque

  1. Segue código:

    $busca_query = mysql_query("SELECT m1.material, m1.quantidade, totalquantidade, m1.minimoestoque
    FROM (
       SELECT material, unidades, SUM(quantidade) as totalquantidade, minimoestoque 
       FROM material 
       GROUP BY material
    ) m1
    WHERE m1.material LIKE '%$busca%' AND totalquantidade LIKE '%$busca1%'
    ORDER BY m1.material ASC")or die(mysql_error());//faz a busca com as palavras enviadas
    
    
    if (empty($busca_query)) { //Se não achar nada, lança essa mensagem
        echo "Nenhum registro encontrado.";
    }
    
    // quando existir algo em '$busca_query' ele realizará o script abaixo.
    while ($dados = mysql_fetch_array($busca_query)) {
    ?>
    
    	<tr style="<?php
    						if ( $dados[quantidade] <= $dados[minimoestoque]){
    							echo "background-color:rgba(255,0,0,0.2);" ;
    						}
    						?>">		

    A variável $dados[quantidade] recebe apenas o valor da primeira linha do GROUP BY material.
    São 5 linhas para cada material. 

    Preciso que interprete o valor de cada linha.

  2. Pintou mais uma nesse mesmo tópico:

    $busca_query = mysql_query("SELECT m1.material, m1.quantidade, totalquantidade, m1.minimoestoque
    FROM (
       SELECT material, unidades, SUM(quantidade) as totalquantidade, minimoestoque 
       FROM material 
       GROUP BY material
    ) m1
    WHERE m1.material LIKE '%$busca%' AND totalquantidade LIKE '%$busca1%'
    ORDER BY m1.material ASC")or die(mysql_error());//faz a busca com as palavras enviadas
    
    
    if (empty($busca_query)) { //Se não achar nada, lança essa mensagem
        echo "Nenhum registro encontrado.";
    }
    
    // quando existir algo em '$busca_query' ele realizará o script abaixo.
    while ($dados = mysql_fetch_array($busca_query)) {
    ?>
    
    	<tr style="<?php
    						if ( $dados[quantidade] <= $dados[minimoestoque]){
    							echo "background-color:rgba(255,0,0,0.2);" ;
    						}
    						?>">		

    A variável $dados[quantidade] recebe apenas o valor da primeira linha do GROUP BY material.
    São 5 linhas para cada material. 

    Preciso que interprete o valor de cada linha.

  3. 1 hora atrás, Denis Courcy disse:

    Ainda não entendi o que você quer.

    O campo data em sua tabela é a data do inventário?

    Se é a data do inventario,  qual o(s) campo(s) que você quer comparar (status, usuario, centrodecusto,filial)?

    A alteração, além de ser por data também é por usuário (como você menciona em seu primeiro post deste tópico)?

     

    A idéia é comparar todas as colunas de acordo com a DATA.

    Exemplo:

    id ativo tipodeativo marcamodelo status usuario centrodecusto filial data
    1 12345678 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018
    2 87654321 celular positivo p30 in use diego.bordini 561308 br01 11/01/2018
    3 12345678 celular positivo p30 in use alessandro.albuquerque 561331 br04 11/03/2018
    4 87654321 celular positivo p30 in use carlos.augusto 561308 br02 11/04/2018
                     

    Perceba que:

    O ativo 12345678 foi alterado a coluna usuário,centrodecusto e fial na data 11/04/2018

    O ativo 87654321 foi alterado o centrodecusto na data 11/03/2018.

     

    select *
    from (SELECT *
          FROM `inventario` WHERE
          data = '$datareferencia') mes1,
         (SELECT *
          FROM `inventario` WHERE
          data = '$dataatual') mes2
    where mes1.usuario = mes2.usuario

    O código acima vai verificar apenas a alteração da coluna usuário de acordo com a data.


    O que não estou consigo é retornar a alteração de qualquer coluna de acordo com a data.
     

  4. 8 horas atrás, Denis Courcy disse:

    Pelo que entendi, você quer os registros que não estejam nesta data (NOT IN)

    SELECT usuario FROM `inventario` where data='11/01/2018'

    Tente assim:

    
    SELECT i1.* 
    FROM `inventario` i1
    LEFT JOIN (
       SELECT i.usuario 
       FROM `inventario` i 
       WHERE i.data='11/01/2018'
    ) i2 ON i2.usuario = i1.usuario
    WHERE i2.usuario IS NULL

     

     

     

    Pensei em futuramente criar um PHP para da um valor das DATA.

    Então fiz isso, mas as colunas ficam duplicadas.

    select *
    from (SELECT *
          FROM `inventario` WHERE
          data = '11/01/2018') mes1,
         (SELECT *
          FROM `inventario` WHERE
          data = '11/02/2018') mes2
    where mes1.usuario = mes2.usuario

     

  5. Desculpe. Eu não formulei a pergunta corretamente. Deve ter sido o exaustão.

    Vou explicar o conceito dessa consulta:

     1. Existe um inventário mensal com todos os ativos

     2. As colunas são id,ativo,tipodeativo,marcamodelo,status,usuario,centrodecusto,filial,data

     3. Estou no terceiro mês ou subsequente a ele(quarto, quinto sexto etc...)

    Como irei consultar a diferença do último inventário, ou seja, a diferença das últimas duas datas?

    exemplo:

    id ativo tipodeativo marcamodelo status usuario centrodecusto filial data
    1 12345678 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018
    2 12345678 celular positivo p30 in use diego.bordini 561308 br01 11/02/2018
    3 12345678 celular positivo p30 in use alisson.brito 561308 brn1 11/03/2018
    4 12345678 celular positivo p30 in use alessandro.albuquerque 561341 br04 11/04/2018
    5 12345678 celular positivo p30 in use carlos.augusto 561308 br02 11/05/2018

     

     

     

     

     

  6. Pessoal,

    Eu preciso exibir as linhas que  houveram alguma alteração de acordo com a DATA.

    Segue o código:

    SELECT * FROM `inventario` WHERE usuario NOT IN (SELECT usuario FROM `inventario` where data='11/01/2018')

    Obs:  Se houver alteração em algum campo de outra coluna não irá exibir. Como posso acrescentar nesse código que exibe qualquer  alteração?

    id ativo tipodeativo marcamodelo status usuario centrodecusto filial data
    1 12345678 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018
    2 12344321 celular positivo p30 in use diego.bordini 561308 br01 11/01/2018
    3 43211234 celular positivo p30 in use alisson.brito 561308 brn1 11/01/2018
    9 87654321 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018
    4 12345678 celular positivo p30 in use carlos.augusto 561308 br04 11/02/2018
    5 12344321 celular positivo p30 in use diego.bordini 561308 br01 11/02/2018
    6 43211234 celular positivo p30 in use alisson.brito 561308 brn1 11/02/2018
    7 87654321 celular positivo p30 in use alessandro.albuquerque 561331 br04 11/02/2018

    No exemplo acima, o usuário alessandro.abuquerque mudou o Centro de Custo e exibiu apenas a mudança de usuário.

     

  7. 4 horas atrás, Denis Courcy disse:

    Tente assim:

    
    SELECT m1.material, m1.quantidade
    FROM (
       SELECT material, SUM(quantidade) as quantidade 
       FROM material 
       GROUP BY material
    ) m1
    WHERE m1.material LIKE '%$busca%' AND m1.quantidade LIKE '%$busca1%' 
    ORDER BY m1.material ASC

     

    Simplesmente perfeito! Mais um ponto pra ti mestre JEDI!

  8. Prezados,

    Estou precisando somar a coluna QUANTIDADE que são consultadas com um "DISTINCT material".

    Segue código até o "DISTINCT material" 

    ...
    $busca_query = mysql_query("SELECT distinct material FROM material WHERE material LIKE '%$busca%' AND quantidade LIKE '%$busca1%' ORDER BY material ASC")or die(mysql_error());//faz a busca com as palavras enviadas
    
    
    if (empty($busca_query)) { //Se não achar nada, lança essa mensagem
        echo "Nenhum registro encontrado.";
    }
    
    // quando existir algo em '$busca_query' ele realizará o script abaixo.
    while ($dados = mysql_fetch_array($busca_query)) {
    ?>
    
        <tr width="100%">        
            <td width="82%"><?php echo "$dados[material]<br />";?></td>    
            <td width="10%"><?php echo "$dados[quantidade] <br />";?>
    ...

     

  9. Resolvido...

    10 horas atrás, marlon255 disse:
    
    if ($nos == 8){
        $nosbd = 'Crítica';
    echo "<font color='#F70909'>".$nosbd."</font>";
    }
    elseif  ($nos == 7){
        $nosbd = 'Alta';
    echo "<font color='#F74909'>".$nosbd."</font>";
    }
    elseif  ($nos == 6 || $nos == 5 || $nos == 4){
        $nosbd = 'Moderada';
    echo "<font color='#FFCC00'>".$nosbd."</font>";
    }
    elseif  ($nos == 3 || $nos == 2 || $nos == 1){
        $nosbd = 'Baixa';
    echo "<font color='#009900'>".$nosbd."</font>";
    }else{
    	echo "Calculo com valor diferente do requisitado.";
    }

    Tenta assim mano, que tu já ver se o $nosbd ta dando algum retorno :)

    Obrigado!

  10. string(8) "Moderada" ??

    3 horas atrás, Stoma disse:

    Adiciona um var_dump depois das verificações para ver como está a variável:

    
    var_dump($nosbd);
    die("??");

     

    string(8) "Moderada" ??

  11. 1 hora atrás, Stoma disse:

    - A variável $nosdb, como você escreveu na sua pergunta, não existe (ao menos no código que você mostrou);

    - Você tem que reescrever a variável sim, conforme já disseram. Apesar das duas formas funcionarem sem erros, o funcionamento e a lógica de if($x == 1 || 2) é diferente de if($x == 1 || $x == 2) (sendo o segundo, provavelmente o que você precisa);

    - Pode ser que $nos tenha valor maior que 8 ou menor que 0. Você deveria adicionar um ELSE aí, para fazer este tratamento;

    - Os @ que você colocou só vão te atrapalhar, pois são os ERROR/WARNING/NOTICE que ajudam a achar e corrigir problemas. Tanto que pode ser que esteja com algum problema aí nesse código, mas você não viu por ter ocultado as mensagens. O mais correto é no ambiente de desenvolvimento os erros estarem habilitados (para o programar ver as mensagens), e no ambiente de produção (servidor que os usuários utilizam) as mensagens estarem ocultas. Isso é feito habilitando/desabilitando a configuração display_errors (http://php.net/manual/pt_BR/errorfunc.configuration.php#ini.display-errors);

      

    já tentei os dois modos e não define um valor. Lembrando que a variável "$nosc" e "$nosi" são consultadas no banco de dados. Tudo funciona normal, apenas a "$nosbd" não define.

     

    $nos = $nosdp + $nosc + $nosi;
    if ($nos == 8){
        $nosbd = 'Crítica';
    echo "<font color='#F70909'>Crítica</font>";
    }
    elseif  ($nos == 7){
        $nosbd = 'Alta';
    echo "<font color='#F74909'>Alta</font>";
    }
    elseif  ($nos == 6 || $nos == 5 || $nos == 4){
        $nosbd = 'Moderada';
    echo "<font color='#FFCC00'>Moderada</font>";
    }
    else{
        $nosbd = 'Baixa';
    echo "<font color='#009900'>Baixa</font>";
    }

  12. 24 minutos atrás, lowys disse:

    Olá! porque usar esse arroba antes das variáveis?

    Nos || ou, você precisa reescrever a variável:

    elseif  ($nos == 6 || $nos == 5 || $nos == 4){

    Oh meu caro o @ é para não exibir a mensagem de erro de consulta do banco de dados, caso alguma variável não tenha sido definida.
    E s pipes os dois modos é correto.
    O meu problema é que a varíavel $nosdb não ganha nenhum valor.
    Eu quero que ela tenha os valores de acordo com os critérios sendo "1 ou 2 ou 3 para BAIXA; 4 ou 5 ou 6 para MODERADA; 7 para ALTA; 8 para MODERADA"

  13. Prezados,

    Alguém pode me ajudar pois não consigo definir a varíavel "$nosdb" para enviar pro BD.

        <?php
            @$nos = @$nosdp + @$nosc + @$nosi;
    if (@$nos == 8){
        @$nosbd = 'Crítica';
    echo "<font color='#F70909'>Crítica</font>";
    }
    elseif  (@$nos == 7){
        @$nosbd = 'Alta';
    echo "<font color='#F74909'>Alta</font>";
    }
    elseif  (@$nos == 6 || 5 || 4){
        @$nosbd = 'Moderada';
    echo "<font color='#FFCC00'>Moderada</font>";
    }
    elseif  (@$nos == 3 || 2 || 1){
        @$nosbd = 'Baixa';
    echo "<font color='#009900'>Baixa</font>";
    }
        ?>

     

×
×
  • Criar Novo...