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: [email protected] From: Fernando Luizao <[email protected]> Reply-To: Lista Shell Script <[email protected]> Date: Sat, 17 Jan 2009 05:36:45 -0800 (PST) To: Lista Shell Script <[email protected]> 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 <[email protected] <mailto:algorges%40gmail.com> > escreveu: De: Alexandre Gorges <[email protected] <mailto:algorges%40gmail.com> > Assunto: [shell-script] Paginar resultados em html Para: [email protected] <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ã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> </ 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á 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: algor...@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]
