Jump to content


Photo

Imprimindo Decrescivamente


  • Faça o login para participar
6 replies to this topic

#1 tiago_me

tiago_me

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 25/02/2010, 13:12

Boa tarde pessoal, eu estou tentando imprimir alguns valores em ordem decrescente, só que...
Na tabela que vou consultar, eu tenho vários campos com valor 1, e vários campos com valor 2.
Da forma que eu estou fazendo, ele imprime decrescivamente, até ai certo, mas se os dois últimos valores forem 2, ele mostra duas vezes o mesmo valor, gostaria de mostrar uma vez o mesmo valor.
estou fazendo assim:
$consulta1 = @mysql_query("select c.*, s.*, e.* from fornecedores c, certificado s, equipamento e where c.Fornecedor = '$fornecedor' and s.fornecedor = c.fornecedor and e.equipamento = s.equipamento_cer and e.fornecedor = s.fornecedor and e.fornecedor = s.fornecedor and e.fornecedor = c.fornecedor GROUP BY s.equipamento_cer order by s.id_certificado");
$co = mysql_num_rows($consulta1);

$consulta2 = @mysql_query("select c.*, s.*, e.* from fornecedores c, certificado s, equipamento e where c.Fornecedor = '$fornecedor' and s.fornecedor = c.fornecedor and e.equipamento = s.equipamento_cer and e.fornecedor = s.fornecedor and e.fornecedor = s.fornecedor and e.fornecedor = c.fornecedor order by s.id_certificado DESC LIMIT $co ");
?>
Estou utilizando para tentar fazer com que ele mostre apenas uma vez o mesmo valor, o GROUP BY, mas ele mostra os valores iniciais da tabela, e gostaria que mostrasse, os últimos dados de cada valor, no caso 1 e 2.

Desde já agradeço a todos!!!!
Abraçoo!!

#2 Renan L. Queiroz

Renan L. Queiroz

    Mestre

  • Usuários
  • 690 posts
  • Sexo:Masculino
  • Localidade:Brasilia - DF

Posted 25/02/2010, 13:18

... mas se os dois últimos valores forem 2, ele mostra duas vezes o mesmo valor, gostaria de mostrar uma vez o mesmo valor ...

Repetição de registros?! Caso seja utilize do "select distinct".

E para pegar parte do registro, veja se a função substr lhe ajuda!
select substring('renan123', -2);
-- ou
select subst('renan123', -2); -- MySQL 4.1.1 +
Resultado: 23

Edição feita por: Renan L. Queiroz, 25/02/2010, 13:21.

Especialidade: Desenvolvimento e Banco de Dados.


Este post lhe ajudou? Agradeça: Posted Image


#3 tiago_me

tiago_me

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 25/02/2010, 13:24

utilizando o distinct ele mostra apenas uma vez algum valor repetido?
eu estava utilizando o GROUP BY, ele fazia isso, só que imprimia em ordem crescente, mesmo eu utlizando desc limit, que seria para ordem decrescente.
no caso a utilização dele ficaria assim?
select distinct (s.equipamento_cer) order by s.id_certificado DESC LIMIT $co


#4 Renan L. Queiroz

Renan L. Queiroz

    Mestre

  • Usuários
  • 690 posts
  • Sexo:Masculino
  • Localidade:Brasilia - DF

Posted 25/02/2010, 13:27

O distinct funciona como um verificador de repetições, no caso desse ultimo select:
select distinct s.equipamento_cer order by s.id_certificado DESC LIMIT $co 
Ele irá trazer cada "s.equipamento_cer" único, sem repetições!
As repetiuções são desconcideradas!

Especialidade: Desenvolvimento e Banco de Dados.


Este post lhe ajudou? Agradeça: Posted Image


#5 tiago_me

tiago_me

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 25/02/2010, 13:31

nessa forma que estou utilizando não é permitido né?
$consulta2 = @mysql_query("select c.*, s.*, e.* from fornecedores c, certificado s, equipamento e where c.Fornecedor = '$fornecedor' and s.fornecedor = c.fornecedor and e.equipamento = s.equipamento_cer and e.fornecedor = s.fornecedor and e.fornecedor = s.fornecedor and e.fornecedor = c.fornecedor distinct(s.equipamento_cer) order by s.id_certificado DESC LIMIT $co ");

ele me da erro de sintaxe.

#6 Renan L. Queiroz

Renan L. Queiroz

    Mestre

  • Usuários
  • 690 posts
  • Sexo:Masculino
  • Localidade:Brasilia - DF

Posted 25/02/2010, 13:38

Acredito que seja algo assim, o que voce pretende:
select distinct s.equipamento_cer,
campo1,
campo2,
campo3

from fornecedores c,
certificado s,
equipamento e

where c.Fornecedor = '$fornecedor'
and s.fornecedor = c.fornecedor
and e.equipamento = s.equipamento_cer
and e.fornecedor = s.fornecedor
and e.fornecedor = s.fornecedor
and e.fornecedor = c.fornecedor

group by campo1, campo2, campo3

order by s.id_certificado desc

limit $co
Teria como me falar como são apresntados os registros atualmente e como você os quer?

Edição feita por: Renan L. Queiroz, 25/02/2010, 13:38.

Especialidade: Desenvolvimento e Banco de Dados.


Este post lhe ajudou? Agradeça: Posted Image


#7 tiago_me

tiago_me

    Novato no fórum

  • Usuários
  • 21 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 25/02/2010, 14:53

desculpe a demora, é que estava envolvido com outro erro que me aconteceu, mas já consegui arruamar.
Eu tenho que fazer essas verificações ai, pois, preciso de dados delas também, porque ao enviar, envio para outras tabelas também.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq