Ir para conteúdo
Fórum Script Brasil
  • 0

Paginação Tipo Fotolog


Leandro Rocha

Pergunta

E ae galera beleza?

Seguinte..eu gostaria de paginar os resultados do meu bd

Ex:

resultado 1 , resultado 02, resultado03

Se eu tiver no resultado 02, quando eu clicar em próximo ele vai para o resultao 03 ou se clicar em voltar ele passa para o resultado 01..ok?..isso eu fiz...mais ae tem um problema..isso esta sendo usado numa galeria de fotos onde eu listo thumbs e ao clicar aparece a foto maior..ao clicar no thumb ele passa a id da foto no link e dai eu faço:

"Select * from tbl_tabela WHERE id="&request.querystring("id")

ele exibe o resultado mais e a paginação????????????

entenderam o q eu quero fazer??..para ser mais claro gostaria que tudo fosse como no http://fotolog.terra.com.br

Vlw

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
ele exibe o resultado mais e a paginação????????????

como assim??

por exemplo..eu faço um select pela id da tofo..passada na url..

"SELECT * FROM TABELA WHERE ID_DA_FOTO="&REQUEST.QUERYSTRING("ID_DA_FOTO")

beleza..como existe apenas uma foto com a ID enviada não vai haver paginação certo..i eu queria fazer o seguinte..mostrar na tela a foto q eu quero pela ID mais que houvess ainda sim a paginação..pra mostrar a próxima foto e a anterior..e assim por diante..entendeu.?

vlw mesmo

Link para o comentário
Compartilhar em outros sites

  • 0
então pra pegar a anterior faca um select do id - 1 e pra pegar a proxima faca um select do id + 1.

vocÊ fala pra eu fazer um select para cada botã?

falo pra voce fazer um select para cada botão. não são só dois botoes?? qual seria o problema de fazer dois selects??

mas se quiser fazer um só select, pode fazer where id >= id_querystring - 1 and id <= id_querystring + 1, mas nesse caso você vai ter trablaho no caso de ele abrir a primera ou a ultima foto.

Link para o comentário
Compartilhar em outros sites

  • 0
então pra pegar a anterior faca um select do id - 1 e pra pegar a proxima faca um select do id + 1.

vocÊ fala pra eu fazer um select para cada botã?

falo pra voce fazer um select para cada botão. não são só dois botoes?? qual seria o problema de fazer dois selects??

mas se quiser fazer um só select, pode fazer where id >= id_querystring - 1 and id <= id_querystring + 1, mas nesse caso você vai ter trablaho no caso de ele abrir a primera ou a ultima foto.

então..eu pensei nisso também..fazendo um ou dois select se abrir a primeira ou a ultima página vai da erro..e outra..supondo q a ID da fot é 100 ..a próxima foto seria a 101 correto?..mais seu apaguei ela a próxima foto seria a 102..pergunta..se eu fizer o select como você falo.id + 1 no caso da foto de id 100..ele vai selecionar a foto 102 ou vai mostrar erro?

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

é verdade, pra pegar o anterior então veja se funciona assim ó:

Select * From Tabela Where Id = (Select Max(Id) From Tabela Where Id < Id_QueryString)
e pra pegar o proximo, tenta assim:
Select * From Tabela Where Id = (Select Min(Id) From Tabela Where Id > Id_QueryString)

acho q essas duas queryes devem fucionar tanto em access quanto em sql. agora se você tiver usando mysql, não sei ai você teria q testar.

usando essas duas você não vai ter problema se tiver excluido qualquer foto, mas se der qualquer outro problema ou erro, posta ae.

e não necessariamente vai dar erro quando você abrir a primeria ou a ultima não. nota q se você tiver mostrando a primeira foto, o select do anterior vai voltar EOF, então você tem q testar antes. assim como o select do proximo tb vai voltar EOF quando tiver na ultima foto.

ou seja é so fazer um if pra ver se é EOF. se for, você não mostra a paginacao (do proximo ou do anterior dependendo do caso).

Link para o comentário
Compartilhar em outros sites

  • 0
é verdade, pra pegar o anterior então veja se funciona assim ó:

Select * From Tabela Where Id = (Select Max(Id) From Tabela Where Id < Id_QueryString)
e pra pegar o proximo, tenta assim:
Select * From Tabela Where Id = (Select Min(Id) From Tabela Where Id > Id_QueryString)

acho q essas duas queryes devem fucionar tanto em access quanto em sql. agora se você tiver usando mysql, não sei ai você teria q testar.

usando essas duas você não vai ter problema se tiver excluido qualquer foto, mas se der qualquer outro problema ou erro, posta ae.

e não necessariamente vai dar erro quando você abrir a primeria ou a ultima não. nota q se você tiver mostrando a primeira foto, o select do anterior vai voltar EOF, então você tem q testar antes. assim como o select do proximo tb vai voltar EOF quando tiver na ultima foto.

ou seja é so fazer um if pra ver se é EOF. se for, você não mostra a paginacao (do proximo ou do anterior dependendo do caso).

deu algo errado..

esta é minhas Sql

Set rstBotao = conn.execute("Select * From tbl_Posts Where idpost = (Select Max(idpost) From tbl_Posts Where idpost < "&request.querystring("id")&") ")

Tipo de erro:

Microsoft JET Database Engine (0x80040E14)

Erro de sintaxe. na expressão de consulta 'idpost = (Select Max(idpost) From tbl_Posts Where idpost < )'.

/testes/fotolog/nando/corpo.asp, line 260

será q erre na SQL?

Link para o comentário
Compartilhar em outros sites

  • 0
o problema é q você não passou a querystring id.

verdade..q mancada..muito obrigado cara.vlw mesmo..resolveu meu problema..

agora deu certo..só q a tabela de posts do fotolog é uma só certo..então desta forma ele ta paginando todos os post..para eu paginar apenas os posts de um determinado fotolog eu filtro usando o CODUSUARIO ..dai eu coloquei nesta SQL q você me deu assim

Set rstBotaoA = conn.execute("Select * From tbl_Posts Where idpost = (Select Max(idpost) [b]and codusuario=15 [/b]From tbl_Posts Where idpost < "&idpost&")")
if rstBotaoA.eof then
response.write "Anterior"
else
response.write "<input type='button' value='Anterior' onclick=header:location='corpo.asp?idpost="&rstBotaoA("idpost")&"' class='botao'>"
end if

ele da erro..se eu colcar isto apos o ID da query também da erro..onde posso colocar isto pra filtrar apenas os posts com esse codusuario?

mais me responde uma ultima coisa..eu num manjo muito de asp..vamos dizer q sou razoavel..e bem relaxado quanto a organização de codigos nas tags..o que influencia isso?..codigos fora de tags?..é muito grave?..porque eu ate sei q tem q por entre as tags certas..tipo scrips java normalmente na head e ...mais num sei porque num pode por fora..já q pra mim não muda em nd..e outra coisa..este fotolog está em access por enquanto..mais também pretendo desenvolve-lo em MySql..será q vou ter q mudar mta coisa? ..tipo...sabe por onde devo começar?

abs e vlw

Editado por Leandro Rocha
Link para o comentário
Compartilhar em outros sites

  • 0

tenta assim ó:

Set rstBotaoA = conn.execute("Select * From tbl_Posts Where idpost = (Select Max(idpost) From tbl_Posts Where idpost < " & idpost & " and codusuario = 15) and codusuario = 15")

mais me responde uma ultima coisa..eu num manjo muito de asp..vamos dizer q sou razoavel..e bem relaxado quanto a organização de codigos nas tags..o que influencia isso?..codigos fora de tags?..é muito grave?..porque eu ate sei q tem q por entre as tags certas..tipo scrips java normalmente na head e ...mais num sei porque num pode por fora..já q pra mim não muda em nd..e outra coisa..este fotolog está em access por enquanto..mais também pretendo desenvolve-lo em MySql..será q vou ter q mudar mta coisa? ..tipo...sabe por onde devo começar?

não entendi. como assim codigo fora de tags?? os codigos asp vao dentro de <% %> e você pode por onde quiser (ou onde for conveniente pra você). os javascripts vao normalmente no head porque normalmente são funcoes q gente dexa la pra chamar depois. no asp você tb pode ate criar subs pra dexar la em cima, mas se você quiser executar qualquer coisa no meio da pagina (enquanto ta sendo carregada) você vai ter q abrir <% %> no meio de qualquer jeito, nem q seja so pra chamar as subs.

e no mysql algumas coisas vao mudar sim. o principal de tudo é a conexao com o banco. mas a sintaxe das queries varia um poco de banco pra banco, e, apesar de ser na maioria a mesma coisa, o mysql tem algumas diferencas pro access. por exemplo, essas duas queres q eu te passei acho q já não vao funcionar em mysql. e pra falar a verdade, acho q da pra fazer ate mais simples no mysql, usando o comando Limit (q não existe em access).

Link para o comentário
Compartilhar em outros sites

  • 0
tenta assim ó:

Set rstBotaoA = conn.execute("Select * From tbl_Posts Where idpost = (Select Max(idpost) From tbl_Posts Where idpost < " & idpost & " and codusuario = 15) and codusuario = 15")

mais me responde uma ultima coisa..eu num manjo muito de asp..vamos dizer q sou razoavel..e bem relaxado quanto a organização de codigos nas tags..o que influencia isso?..codigos fora de tags?..é muito grave?..porque eu ate sei q tem q por entre as tags certas..tipo scrips java normalmente na head e ...mais num sei porque num pode por fora..já q pra mim não muda em nd..e outra coisa..este fotolog está em access por enquanto..mais também pretendo desenvolve-lo em MySql..será q vou ter q mudar mta coisa? ..tipo...sabe por onde devo começar?

não entendi. como assim codigo fora de tags?? os codigos asp vao dentro de <% %> e você pode por onde quiser (ou onde for conveniente pra você). os javascripts vao normalmente no head porque normalmente são funcoes q gente dexa la pra chamar depois. no asp você tb pode ate criar subs pra dexar la em cima, mas se você quiser executar qualquer coisa no meio da pagina (enquanto ta sendo carregada) você vai ter q abrir <% %> no meio de qualquer jeito, nem q seja so pra chamar as subs.

e no mysql algumas coisas vao mudar sim. o principal de tudo é a conexao com o banco. mas a sintaxe das queries varia um poco de banco pra banco, e, apesar de ser na maioria a mesma coisa, o mysql tem algumas diferencas pro access. por exemplo, essas duas queres q eu te passei acho q já não vao funcionar em mysql. e pra falar a verdade, acho q da pra fazer ate mais simples no mysql, usando o comando Limit (q não existe em access).

vlw kuroi..problema resolvido..vlw mesmo

fui

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...