Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mzaidan

[Resolvido] Pegar os 2 primeiros resultados

Recommended Posts

Galera, como eu faço para fazer uma busca em uma tabela e pegar apenas os 2 últimos resultados?

 

Grato.

 

Só esqueci de informar que eu tenho que salvar esses dois dados em variáveis, para depois mandar escrever no código.

Não pode ser ir achando e escrevendo.

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua pergunta esta bem confusa, não sei se é exatamente isso que quer, mas

 

Primeiro selecionar apenas os 2 primeiros registros no Select.

 

SELECT campo FROM tabela LIMIT 2;

 

$con = mysql_connect ($server,$username,$password);// conecta
mysql_ select_ db($banco,$con);//seleciona o Banco
$result = mysql_query($select);// execulta a instrução SQL
$row = mysql_fetch_array($result, MYSQL_ASSOC) // pega a primeira linha
$var1 = $row['campo1'];// coloca valor na varival
$row = mysql_fetch_array($result, MYSQL_ASSOC) // pega segunda linha
$var2 = $row['campo1']; // coloca na proxima variável

 

Não sei seu nível de conhecimento por isso tentei mostra a maneira mais simplificada, qualquer duvida é só perguntar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro:

Parse error: syntax error, unexpected T_VARIABLE in /home/moska418/public_html/evprod.com.br/teste.php on line 7

 

O código:

<?
include ("youtube/mysql/config.php");
$result = mysql_query("SELECT * FROM video WHERE status_youtube = 'ON' ORDER BY id DESC LIMIT 0,2");

$row = mysql_fetch_array($result, MYSQL_ASSOC) // pega a primeira linha

  $id1 = $row['id'];// coloca valor na varival
  $nome_youtube1 = $row['nome_youtube'];
  $url_youtube1 = $row['url_youtube'];

$row = mysql_fetch_array($result, MYSQL_ASSOC) // pega segunda linha
  $id2 = $row['id'];// coloca valor na varival
  $nome_youtube2 = $row['nome_youtube'];
  $url_youtube2 = $row['url_youtube'];

echo $nome_youtube1."<br>";
echo $nome_youtube2;
?>

O que eu fiz de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

erro de lógica.. no PHP e não na sql..

inicialmente:

Pegar os 2 primeiros resultados

(titulo do post)

pegar apenas os 2 últimos resultados?

aí depende.. do seu critério de ordenação..

 

bom, no seu ultimo post..

você já limitou o resultado a 2 linhas (LIMIT)

então não faz sentido montar a 2ª $row..

 

tente o seguinte: use um loop (laço) - por exemplo, o comando while (significa "enquanto" e em PHP é algo como "exibir enquanto houver dados"):

ficaria assim:

 

<?php
include ("youtube/mysql/config.php");
$result = mysql_query("SELECT * FROM video WHERE status_youtube = 'ON' ORDER BY id DESC LIMIT 2");
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$id1 = $row['id'];
$nome_youtube1 = $row['nome_youtube'];
$url_youtube1 = $row['url_youtube'];
echo $id1;
echo $nome_youtube1."<br>";
echo $nome_youtube2;
}
?>

 

1 obs final: limit 0,2 = limit 2, ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu queria armazenar em duas variáveis, fora do while, e usar depois na página.

 

Tem como?

 

Fazer algo, mais ou menos assim:

 

<?php
include ("youtube/mysql/config.php");
$result = mysql_query("SELECT * FROM video WHERE status_youtube = 'ON' ORDER BY id DESC LIMIT 2");
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$id1 = $row['id'];
$nome_youtube1 = $row['nome_youtube'];
$url_youtube1 = $row['url_youtube'];

$nome1 = $nome_youtube1;
$nome2 = $nome_youtube2;
}

echo $nome1."<br>";
echo $nome2;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até onde sei, o while é laço de repetição. Então ele vai gravar em uma variavel tudo que ele acha de resultado referente a pesquisa, impossibilitando assim de fazer o que você quer (se for para usar em pontos diferentes do site), se for no mesmo local basta uma variavel só.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza.

Então eu poderia fazer 2 selects diferentes, um para pegar o último resultado e outro para pegar o penúltimo.

Tem como??

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Cara, eu queria armazenar em duas variáveis, fora do while, e usar depois na página.

Tem como?

Declare como $GLOBALS

ex:

(...)
while($row=mysql_fetch_array($busca_query))
{
$GLOBALS["teste"]=$row['nome_youtube'];
$GLOBALS["teste2"]=$row['url_youtube'];
}
echo $teste;
echo $teste2;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase.

 

Eu teria que pegar os 2 nomes e não um nome e um endereço (da mesma pessoa)

 

Teria que ser algo, mais ou menos assim:

 

<?php
include ("youtube/mysql/config.php");
$result = mysql_query("SELECT * FROM video WHERE status_youtube = 'ON' ORDER BY id DESC LIMIT 2");
while($row=mysql_fetch_array($result))
{
$GLOBALS["teste"]=$row['nome_youtube'];
$GLOBALS["teste2"]=$row['nome_youtube2'];
}
echo $teste;
echo $teste2;
?>

 

No que você passou ele pegou o ultimo nome com seu respectivo endereço.

Eu precisaria pegar os dois últimos nomes (dois ids diferentes).

Entendeu?

 

Na verdade, acho que o melhor, nesse caso, seria mesmo 2 selects.

Um para pegar o último registro e outro para pegar o penúltimo.

Tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido:

 

<?php
include ("youtube/mysql/config.php");
$result2 = mysql_query("SELECT * FROM video WHERE status_youtube = 'ON' ORDER BY id DESC limit 1,1");
$row2=mysql_fetch_array($result2);

$id2 = $row2['id'];
$nome2 = $row2['nome_youtube'];
$url2 = $row2['url_youtube'];

echo "Penúltimo:<br>".$id2."<br>".$nome2."<br>".$$url2;

$result = mysql_query("SELECT * FROM video WHERE status_youtube = 'ON' ORDER BY id DESC limit 0,1");
$row=mysql_fetch_array($result);

$id = $row['id'];
$nome = $row['nome_youtube'];
$url = $row['url_youtube'];

echo "Último:<br>".$id."<br>".$nome."<br>".$$url;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.