Ir para conteúdo

POWERED BY:

Arquivado

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

Alex_ps

Paginação em MYSQL

Recommended Posts

Olá,

 

Estou utilizando um script de paginação para MYSQL, só que não sei se coloquei o select que realmente faz a busca, no lugar certo.

Além disso, está tendo uma enorme demora, para obtenção dos resultados.Talvez tenha algum erro, já que fiz uma alteração no script original, em uma linha que eu não sabia para que servia.

Outra coisa, no script, mesmo não tendo resultados para apresentar mais de uma página, ele exibe no rodapé, página 2, 3 e próxima, sem necessidade. Tem como corrigir?

O código é longo, mas não é difícil de acompanhar.

Por favor, dêem uma olhada.

 

'Faço a conexão - OK<%strSQL = "select COUNT(*) As nome from busca" 'aqui eu coloquei o count(*) trocando o original que era sum(1)Set rs = Conn.Execute(strSQL)     IF rs.EOF AND rs.BOF THEN         TotReg = 0      Else         TotReg = Rs("nome")         'response.write totreg      End IfSet Rsb = Server.CreateObject("adodb.recordset")strSQL1 = "select * from busca "Set Rsb = Conn.Execute(strSQL1)If TotReg = "" OR isNull(TotReg) Then TotReg = 0 '' TOTAL DE REGISTROS A SER EXIBIDOS NA PÁGINA   TotRegPag = 10 '' COMANDOS PARA DESCOBRIR O TOTAL DE PÁGINAS EXISTENTES   TotPag = TotReg / TotRegPag   IF inStr(1,TotReg / TotRegPag,",") THEN TotPag = Split(TotPag,",")(0)+1 '' RECUPERO A PÁGINA ATUAL   Pagina = Cint(Request.QueryString("p"))   IF Pagina = "" THEN Pagina = 1 '' CALCULOS PRA POSIÇÕES INICIO   Inicio = 0   IF Pagina > 1 THEN Inicio = (Pagina-1)*TotRegPag '' FIM COMANDOS strSQL1 = "select * from busca where descricao like '%"&bsimples&"%' order by ID desc Limit "& Inicio &","& TotRegPag'strSQL1 = "select * from busca Limit "& Inicio &","& TotRegPagSet rsb = Conn.Execute(strSQL1)%><%            If rsb.EOF Then            Response.Write "</br>Nenhum site cadastrado."            Else%><% 	 'alteração no codigo 	 'response.write "<center><table width=""80%"" cellspacing=""0"" cellpadding=""0"" border=""0"" style=""margin-top: 0px"">"'fim%> 	 <% 	 While intrec < Rsb.PageSize and not Rsb.EOF %><%'alteração no código'response.write "<tr><td>"'response.write "<span style=""font-family: verdana, arial, helvetica; font-size: 9px; color: #606060"">" & rs("ID") &"</span><br>"response.write "<p style=""font-family: verdana, arial, helvetica; font-size: 10px; color: #606060; font-weight: bold; margin-top: 0px"">" & rsb("nome") &"<br>"response.write "<p style=""font-family: verdana, arial, helvetica; font-size: 10px; color: #606060; margin-top: 5px"">" & replace(rsb("descricao"), bsimples, "<b>" & ucase(bsimples) & "</b>", 1, -1, 1) & "<br>"'response.write "<span style=""font-family: verdana, arial, helvetica; font-size: 9px; color: #606060"">" & rs("aprovado") &"</span><br>"'response.write "<span style=""font-family: verdana, arial, helvetica; font-size: 9px; color: #606060"">" & rs("data") &"</span><br>"'response.write "<span style=""font-family: verdana, arial, helvetica; font-size: 9px; color: #606060"">" & rs("categoria") &"</span><br>"response.write "<p style=""margin-top: 5px"">" & "<a href=""http://" & rsb("url") & " "" target=""_blank"" class=""links"" >" & rsb("url") & "</a><br><br><br>"'response.write "</td></tr>"'fim%><%   Rsb.MoveNext  Wend    %><%'alteração no codigo'response.write "</table></center>"'fim%>  <% '' INICIO LINKS DE NAVEGAÇÃO '************************************************************ If Pagina = "" OR Pagina = 0 Then Pagina = 1   IF Cint(Pagina) > 1 THEN Links = Links & "<a href='?p=" & Pagina-1 & "'>< Anterior</a> | " '************************************************************ IF (Pagina-2) > 0 THEN   FOR I = INT(Pagina-2) TO Pagina-1      Links = Links & "<a href=?'p=" & I & "'>" & I & "</a>  "   NEXT END IF      Links = Links & "<b>[" & Pagina & "]</b>" IF (Pagina+2) <= TotPag THEN   FOR I = Pagina+1 TO INT(Pagina+2)      Links = Links & "  <a href=?p=" & I & ">" & I & "</a>"   NEXT END IF   IF Cint(Pagina) < Cint(TotPag) THEN Links = Links & " | <a href='?p=" & Pagina+1 & "' >Próximo ></a>" Response.Write "<hr color=""#FFFFFF""><center>" & Links & "</center><hr color=""#FFFFFF"">" End if%>

Agradeço a ajuda.

 

Alex_ps

Compartilhar este post


Link para o post
Compartilhar em outros sites

não vi a tua páginação, mas veja se te ajuda.

tem 3 tipos ai, por isso o código ta grande.

 

ASP

[*]<%

 

[*]Banco  "upbalada"

 

[*]Servidor "localhost"

 

[*]Usuario  "root"

 

[*]Senha  ""

 

[*]

 

[*]Set cnUPBalada Server.CreateObject("ADODB.Connection")

 

[*]cnUPBalada.Open "Driver=MySQL ODBC 3.51 Driver; DATABASE="&Banco&"; SERVER="&Servidor&"; UID="&Usuario&"; PASSWORD="&Senha&""

 

[*]

 

[*]Pag Request("Pag")

 

[*]ToReg = 10

 

[*]

 

[*]If pag "" Then

 

[*] pag = 1

 

[*]End If

 

[*]

 

[*]inicio = pag * ToReg - ToReg

 

[*]

 

[*]SQL2 "SELECT * FROM fotos LIMIT "&Inicio&","&ToReg&""

 

[*]Response.Write SQL2

 

[*] Set Rs2 cnUPBalada.Execute(SQL2)

 

[*]

 

[*]SQL3 "SELECT COUNT(*) AS total FROM fotos"

 

[*] Set Rs3 cnUPBalada.Execute(SQL3)

 

[*]Total Rs3("total") / ToReg%>

 

[*]

 

[*]<br><br>

 

[*]

 

[*]<%Do While Not Rs2.EOF

 

[*]

 

[*]Email Rs2("foto")

 

[*]Nome  Rs2("status")%>

 

[*]

 

[*]<%=Email%> - <%=Nome%><br>

 

[*]

 

[*]<%Rs2.MoveNext

 

[*]Loop%>

 

[*]

 

[*]<br><br>

 

[*]

 

[*]<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="129" height="23">

 

[*] <tr>

 

[*] <td height="23" width="127">

 

[*]<p align="center">

 

[*]

 

[*]<%If Int(Request("Pag")) = 1 OR Int(Request("Pag")) "" Then%>

 

[*]Anterior - 

 

[*]<%Else%>

 

[*]<a href="?Pag=<%=Int(Pag) -1%>">Anterior</a> - 

 

[*]<%End If%>

 

[*]

 

[*]<%If Int(Pag) <> Int(Total)+1 Then%>

 

[*]<a href="?Pag=<%=Int(Pag) +1%>">Próximo</a>

 

[*]<%Else%>

 

[*]Próximo

 

[*]<%End If%>

 

[*] </td>

 

[*] </tr>

 

[*]</table>

 

[*]

 

[*]

 

[*]-------------------------

 

[*]

 

[*]

 

[*]<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="223" height="27">

 

[*] <tr>

 

[*] <td height="27" width="223"><font face=Verdana size=1><b>Página(s):</b>

 

[*]<%for i = 1 to Total+1

 

[*]if i cint(pag) then%>

 

[*]<i><b><%=i%></b></i>

 

[*]<%else%>

 

[*]<a href=?Pag=<%=i%> style="text-decoration: none"><font color=#808080><b><%=i%></b></font></a>

 

[*]<%end if 

 

[*]next%>

 

[*]</font></td>

 

[*] </tr>

 

[*]</table>

 

[*]

 

[*]

 

[*]-------------------------

 

[*]

 

[*]

 

[*]

 

[*]<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" width="223" height="27">

 

[*] <tr>

 

[*] <td height="27" width="223"><font face=Verdana size=1>

 

[*]<%

 

[*]Links = 2

 

[*]

 

[*]If pag = 1 Then

 

[*]for i = pag To pag+links+1

 

[*] If i <= Total Then

 

[*] Response.Write " <a href=?pag=" & i & ">" & i & "</a> "

 

[*] End If

 

[*]next

 

[*]Else

 

[*]for i = pag-1 To pag+links

 

[*] If i <Int(Total)+1 Then

 

[*] Response.Write " <a href=?pag=" & i & ">" & i & "</a> "

 

[*] End If

 

[*]next

 

[*]End If

 

[*]%></td>

 

[*] </tr>

 

[*]</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Alex,Obrigado por sua ajuda com os scripts enviados!Infelizmente, o negócio é mais embaixo.Veja, o meu script funciona, mas eu não sei onde colocar o meu select.O meu select, a que me refiro, é aquele que realmente me interessa, ou seja, por ser um site de busca, está se referindo ao filtro que desejo exibir os resultados.Utilizando um dos seus scripts, quer dizer na realidade, os 3 juntos, que depois escolhi 2 que mais se aproximavam com o meu original, encontrei o mesmo problema.Coloquei o meu select, no trecho:

SQL2 = "SELECT * FROM busca where descricao like '%"&bsimples&"%' LIMIT "&Inicio&","&ToReg&""

Não sei se é ai que eu tenho que colocar, ou se faço um outro select anterior a todos estes que estão no script, e que irão me proporcionar o filtro aos resultados.Veja, não adianta eu saber ao contar as páginas, que são 9687páginas, se na realidade só 1, 2, 3 têm a palavra pesquisada pelo visitante.E é esta parte que eu não sei fazer e que creio pode estar causando demora e imprecisão nos resultados.Usando seu script, por exemplo, o resultado apareceu só na primeira página, quando eu mudo de página, não faço a menor idéia do que o script seleciona, pois não tem a palavra procurada.É isto meu caro.Desculpe minha ignorância, mas apesar de estar conseguindo fazer coisas bem legais, nunca entendi muito bem esta história de select de select de select...Obrigado por sua ajuda e por todos que se interessaram em ler este post.Alex_ps

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.