-
Total de itens
14 -
Registro em
-
Última visita
Posts postados por alessandro.albuquerque
-
-
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.
-
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.
-
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
-
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 -
2 horas atrás, alessandro.albuquerque disse:
-
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.
-
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!
-
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 />";?> ...
-
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!
-
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" ??
-
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>";
} -
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" -
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>";
}
?>
While
em PHP
Postado
Segue código:
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.