Ir ao conteúdo

Posts recomendados

  • Moderador
Postado

@Augusto Telles Olá. Seja bem vindo no Clube do Hardware.

 

Não sei se entendi muito bem quando disse " a penas a 4 linha".

Se refere ao registro? o quarto registro?

Se for isso, basta informar na clausula selecionando o campo de ID

SELECT * FROM tabela WHERE ID = 4

Assumindo que a chave primária é um campo chamado ID. Retornaria todos os dados referente ao quarto registro, apenas ele.

 

OU se você está referindo a quarta coluna de uma tabela,  aí só precisa selecionar o campo desejado

ID nome   email             endereco  cidade  cep     
1  fulano [email protected]  rua 123   XXX     3423423

SELECT cidade from tabela

Vai retornar todos os registros só com os nomes das cidades.

De qualquer forma, acho que seria melhor você explicar e exemplificar melhor a dua dúvida.

Postado

Obrigado pela resposta amigo! Estou falando da linha mesmo porém não posso pegar pelo id porque preciso puxar a tabela por ordem crescente entao cada hora um registro seria o 4

  • Moderador
Postado

@Augusto Telles Desculpa, mas ainda ta bem confuso isso..

Eu não entendo o que você define como "linha".

55 minutos atrás, Augusto Telles disse:

porém não posso pegar pelo id porque preciso puxar a tabela por ordem crescente

Isso é feito pelo Order by asc.    

 

Seria possível você postar um print da sua tabela e indicar qual o exatamente é o dado que você quer listar?

Se não puder por imagem, tente representar da forma que eu fiz ali no post mais acima.

Postado

Logico! Agora não estou em casa, mas vou representar:

 

id, time, pontos

1, fla, 30

2, flu, 22

3,bot, 28

4, vas, 16

 

ai eu vou puxar os dados desta tabela por ordem de pontos crescentes e os pontos ficam variando de acordo com o campeonato ou seja consequentemente o 4 colocado tb muda, gostaria de saber como puxar apenas quem está em 4º por exemplo.

  • Moderador
Postado

@Augusto Telles Ah, agora sim você foi bastante objetivo.  Com a representação e a explicação mais detalhada do que você quer deu para entender. Isso é bastante simples de resolver.

 

Você quer listar apenas os 4 primeiros registros, sendo que o quarto registro vai ser sempre o último colocado, mas todas as 4 posições são voláteis.

Use o limit!

 

SELECT time, pontos FROM campeonato 
ORDER BY pontos ASC LIMIT 4

Desta forma você vai listar pela ordem de pontos do menor para o maior.

Mas, se você quer fazer uma tabela de pontuação de campeonato, você tem que fazer por DESC. onde o primeiro vai ser o que tiver mais pontos e  quarto registro o que tiver menos pontos.

 

Desta forma:

SELECT time, pontos FROM campeonato 
ORDER BY pontos DESC LIMIT 4

 

  • Moderador
Postado

@Augusto Telles Bem, tem ainda a cláusula do OFFSET....  mas veja bem, pode não funcionar do jeito que você espera se tiver mais do que 4 registros da tabela:

 

select time, pontos FROM campeonato ORDER By pontos DESC LIMIT 1 OFFSET 3

No caso o LIMIT em 1  pega apenas um registro, o OFFSET define qual deles quer. Se quer o "último"  é 3, pois a contagem começa em zero.

  • Curtir 1
  • Moderador
Postado
1 hora atrás, Augusto Telles disse:

Consegue escrever o comando que eu daria para o php puxar já que não usaria mais um while?

Conseguir, até consigo, mas não o farei porque é seu trabalho pensar nisso.

Não vou dar códigos, mas  precisa usar o while  se for para trazer apenas um registro.

Apesar de usar ou não o while, se usar a instrução que passei acima, você sempre vai trazer apenas 1 registro.

Posta aqui sua tentativa.

  • Moderador
Postado

@Augusto Telles Ah sim,  essas funções servem para indicar o meio de como você vai manipular os dados.

o mysqli_fetch_assoc() obtém resultados como uma matriz associativa.

o mysqli_fetch_array()  obtém os resultados como um vetor

o mysqli_fetch_object() obtém os resultados com um objeto.

 

Tanto faz usar qualquer um deles.

 

Exemplo dos 3 métodos:

$result=mysqli_query($con,$sql);

// Associative array
$row=mysqli_fetch_assoc($result);
printf ("%s (%s)\n",$row["Lastname"],$row["Age"]);

 

$result = mysqli_query($link, $query);

/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);  

Nesse caso, você pode usar tanto o valor do índice, quanto ao nome do campo.

printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); 

Já o object trata como objeto

while ($obj = $result->fetch_object($consulta)) {
        echo " $obj->Name 
               $obj->CountryCode";
    }

Bem é por aí a coisa.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!