shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Paginar resultados em html


From: Alexandre Gorges
Subject: Re: [shell-script] Paginar resultados em html
Date: Sat, 17 Jan 2009 14:02:36 -0200
User-agent: Microsoft-Entourage/12.15.0.081119

Obrigado Fernando, já deu uma luz por onde comecar.

Irei fazer tentativas aqui, não compreendi muito bem como montar os links
para as páginas. Mas irei ficar fazendo testes.


[]'s
Alexandre Gorges
http://algorges.blogspot.com
MSN/Gtalk/iCHAT/Skype/Jabber: address@hidden





From: Fernando Luizao <address@hidden>
Reply-To: Lista Shell Script <address@hidden>
Date: Sat, 17 Jan 2009 05:36:45 -0800 (PST)
To: Lista Shell Script <address@hidden>
Subject: Re: [shell-script] Paginar resultados  em html

 
 

Da forma que seu script está, vc vai precisar mudar um pouco. Primeiro
porque vc está pegando todos os registros de uma vez (a maior causa da
lentidão). Em vez de fazer um

SELECT * FROM ...

Você vai precisar saber a quantidade de registros da tabela (use COUNT(*)
para isso). Sabendo a quantidade total de registros, vc define a quantidade
de registros por paginá que você quer e trabalha com o LIMIT para buscar
apenas os registros da página desejada. A sintaxe para usar o LIMIT é a
seguinte:

SELECT * FROM tabela LIMIT inicio, quantidade_por_pagina

Para calcular o início, é simples:

inicio=(numero_pagina - 1) * quantidade_por_pagina

Você vai precisar passar o número da página pela url. Caso o número da
página não seja passado, inicialize inicio com 0.

Essa é toda a lógica que vc precisa para buscar os registros do banco.
Depois é montar as urls com os links para as páginas.

Espero que ajude, ou pelo menos dê uma luz. Qualquer dúvida estamos aí.

Abraços
Fernando

--- Em sex, 16/1/09, Alexandre Gorges <address@hidden
<mailto:algorges%40gmail.com> > escreveu:
De: Alexandre Gorges <address@hidden <mailto:algorges%40gmail.com> >
Assunto: [shell-script] Paginar resultados  em html
Para: address@hidden
<mailto:shell-script%40yahoogrupos.com.br>
Data: Sexta-feira, 16 de Janeiro de 2009, 23:45

Boa noite pessoal, programo com shell a bastante tempo e de uns tempos pra

cá tenho me aprofundado ainda mais.

Possuo um sistema de gestão de servidores va web, interagindo com o servidor

via shell.

Até hoje tenho feito praticamente tudo com o shell. Uso bem pouco do PHP,

apenas para chamar o script shell.

Acontece que estou com um problema que é fazer uma listagem ser dividida em

páginas. Como se fosse um resultado de busca

do google. Meu desejo é dividir em páginas com 20 resultados.

O meu script hoje consulta no mysql e monta o html. Funciona perfeitamente,

mas existe alguns servidores que possuem muitos emails, e o html

fica gigante. Visualizando o meu script abaixo, é possível via shell criar

essas páginas?

Email_listatodos)

# converte data de aaaa-mm-dd para dia/mes/ano

data_mysql-to- brasil(){

echo "$*" | sed

's,\([0-9]\{ 4\}\)-\([ 0-9][0-9] \)-\([0-9] [0-9]\),\ 3/\2/\1,'

}

# verifica se o email esta ativo

esta_ativo() {

if [ "$*" = "1" ]; then

echo "Sim"

else

echo "N&atilde;o"

fi

}

#divide a quota por 1024

divide_quota( ){

echo $(( $* / 1024 ))

}

# Executa a pesquisa no banco do postfix

S=$(mysql -u server  -e "SELECT * FROM mailbox order by

username" postfix)

# a procura retornou algum registro ?!

[ "$S" ] || { echo "Sem registro";exit; }

# colocar um TAB como IFS

IFS="$(echo -e '\t')"

# Apaga a primeira linha, ela contem o nome dos campos

S=$(echo "$S" | sed '1d')

echo "<p>&nbsp;</ p>"

echo "<table width=\"335\ " height=\"49\ " border=\"0\"

align=\"center\ " cellpadding= \"0\" cellspacing= \"0\">"

echo "  <tr>"

echo "    <th height=\"15\ " colspan=\"2\ "

bordercolor= \"#000000\ " bgcolor=\"#BABABA\ " class=\"f01\ "

scope=\"col\ ">Usu&aacute; rios do

Email</th>"        

echo "  </tr>"

# coloca um espaco em branco entre TABs repetidos (\t\t)

echo "$S" | sed ":a;s/\(`echo -e '\t'`\)\(\1\ )/\1 \2/;ta" |

\

while read username password name maildir quota domain

created modified active relay; do

echo "  <tr>"

echo "    <th width=\"97\" height=\"68\ " valign=\"top\ "

class=\"f02\ " scope=\"col\ "><div align=\"left\ ">"

echo "    Nome:<br />"

echo "    Email:<br />"

echo "    Quota:<br />"

echo "    Criado em:<br />"

echo "    Ativo:<br />"

echo "    </div><div align=\"left\ "></div>< /th>"

echo "    <th width=\"285\ " valign=\"top\ " class=\"f02\ "

scope=\"col\ ">"

echo "    <div align=\"right\ ">"

echo "    $name<br />"

echo "    $username<br />"

echo "    $(divide_quota $quota) MB<br />"

echo "    $(data_mysql- to-brasil $created)<br />"

echo "    $(esta_ativo $active)<br />"

echo "    </div></th>"

done

echo "</tr></table> "

;;

Qualquer ajuda ficarei muito grato.

[]'s

Alexandre Gorges

http://algorges. blogspot. com

MSN/Gtalk/iCHAT/ Skype/Jabber: algorges@gmail. com

[As partes desta mensagem que não continham texto foram removidas]


 








Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]

 
    



[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]