Thales Lacerda Postado Janeiro 15, 2008 Denunciar Share Postado Janeiro 15, 2008 Pessoal, estou precisando fazer uma consulta em uma tabela que retorne os últimos 10registros e que possua critério de ordenação.O usuário poderá escolher alguns tipos de ordenação como: data, valor, historico.Com a consulta apresentada abaixo, ela irá primeiro ordenar para depoispegar os 10 últimos. Esse é o problema, pois esses 10 valores não podem ser alterados independente do tipo de ordenação.$order = $_GET['order'];$sql = mysql_query("select * from usuarios order by $order limit 10");Alguém pode me ajudar? Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Janeiro 18, 2008 Denunciar Share Postado Janeiro 18, 2008 Pessoal, estou precisando fazer uma consulta em uma tabela que retorne os últimos 10registros e que possua critério de ordenação.O usuário poderá escolher alguns tipos de ordenação como: data, valor, historico.Com a consulta apresentada abaixo, ela irá primeiro ordenar para depoispegar os 10 últimos. Esse é o problema, pois esses 10 valores não podem ser alterados independente do tipo de ordenação.$order = $_GET['order'];$sql = mysql_query("select * from usuarios order by $order limit 10");Alguém pode me ajudar?Oi, Thales!O que você necessita é separar as consultas em duas. Uma buscando os 10 primeiros registros e outra ordenando conforme você deseja.Para buscar os primeiros 10 registros, sugiro a criação de uma tabela temporária que residirá na memória RAM e esta é criada assim:CREATE TEMPORARY TABLE temp ( ... aqui entra a lista de campos que você necessita.... )ENGINE = MEMORY; Agora carregue a tabela temporária com os dados dos 10 primeiros registros da tabela física. Isto se faz assim: INSERT INTO temp ( ...conforme a lista de campos criada...) SELECT ...conforme a lista de campos criada na tabela temp... FROM usuarios LIMIT 10; e, agora, a ordenação para exibição: SELECT ...conforme a lista de campos criada na tabela temp... FROM temp ORDER BY campo; Quando terminar de usar a tabela temp, não se esqueça de destruí-la para liberar memória. Faça isto assim: DROP TABLE tempÉ só. Qualquer dúvida é só postar novamente. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Thales Lacerda
Pessoal, estou precisando fazer uma consulta em uma tabela que retorne os últimos 10
registros e que possua critério de ordenação.
O usuário poderá escolher alguns tipos de ordenação como: data, valor, historico.
Com a consulta apresentada abaixo, ela irá primeiro ordenar para depois
pegar os 10 últimos. Esse é o problema, pois esses 10 valores não podem ser alterados independente do tipo de ordenação.
$order = $_GET['order'];
$sql = mysql_query("select * from usuarios order by $order limit 10");
Alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados