mzaidan 2 Denunciar post Postado Abril 27, 2012 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
Danilo Soncini 15 Denunciar post Postado Abril 28, 2012 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
mzaidan 2 Denunciar post Postado Abril 28, 2012 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
Fernando C 128 Denunciar post Postado Abril 28, 2012 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
mzaidan 2 Denunciar post Postado Abril 28, 2012 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
allex_carvalho 124 Denunciar post Postado Abril 28, 2012 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
mzaidan 2 Denunciar post Postado Abril 28, 2012 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
Fernando C 128 Denunciar post Postado Abril 29, 2012 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
mzaidan 2 Denunciar post Postado Abril 29, 2012 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
mzaidan 2 Denunciar post Postado Abril 29, 2012 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