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

Paginação


Sperto_Rox

Pergunta

tipo ... eu proucurei por paginação e encontrei vários resultados. .. mas não obtive muito sucesso na hora de montar ... olha .. vi o tutorial do newton pasqualine e vi varios erros e ajeitei alguns e não to encontrando mais erros .. porém o script não funciona direito ... testem ai e se alguém puder ajeita pra mim ou me diz o q é pra eu ajeitar ..

desde já agradeço a ajuda de vocês

o código

<?
$conexao= mysql_connect("mysql.guiacamposdojordao.com","usuario","senha") or print mysql_error();
mysql_select_db("guiacamposdojord",$conexao) or print mysql_error();
$pag_views = 2;
If (!$pagina) {
$pagina = 0;
} else {
$pagina = $pagina;
}
$inicio = "$pagina –1"; //ASSIM INICIAREMOS DA LINHA ZERO DO BANCO
$inicio = $pagina * $pag_views;
$sql = "SELECT * FROM paginacao";
$query = mysql_query($sql);
$limita = "$sql LIMIT $inicio,$pag_views";
$executa = mysql_query($limita);
$linhas = mysql_num_rows($query);
$paginas = $total / $pag_views;
$volta = "$pagina –1";
$proxima = "$pagina +1";
while ($mostra = mysql_fetch_array($executa)) {
echo $mostra[nome];
}
If ($volta>0) echo "<a href=?pagina=$volta>Volta</a><br>";
For ($i = 0; $i <= $paginas; $i++){ //REPETE ATÉ QUE SE ACABEM AS LINHAS 
$pag = $i +1; //EVITA A PÁGINA ZERO
echo "<a href=?pagina=$pag>$pag</a>"; //MOSTRA O LINK PARA A PÁGINA
}
if ($pagina < $paginas) {
echo "<a href=?pagina=$proxima>Proxima</a>";
}
?>

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Tenta esse ai que eu fiz nas coxas, mas ta funcionando depois se melhora ele

ate mais

pagina.php:

<?

$conexao = mysql_connect("localhost") or print mysql_error();

mysql_select_db("banco",$conexao) or print mysql_error();

$sql = "SELECT * FROM usuarios  LIMIT 0, 4";

$query = mysql_query($sql);

while ($coluna = mysql_fetch_array($query)){

$nome = $coluna["nome"];

echo "$nome<br>";

}

// Querys para a mostragem de paginas

$p_query = mysql_query("SELECT * FROM usuarios LIMIT 0, 4");

$p_total = mysql_num_rows($p_query);

// Mostragem de pagina

$query = mysql_query("SELECT * FROM usuarios");

if(mysql_num_rows($query)>4) {

   echo " <a href=\"pagina2.php?pagina=2\">Proximas >></a>";

}

?>

pagina2.php:

<?

$conexao = mysql_connect("localhost") or print mysql_error();

mysql_select_db("banco",$conexao) or print mysql_error();

$pagina = $_GET["pagina];

// Maximo de registros por pagina

$maximo = "4";

// Calculando o registro inicial

$inicio = $pagina-1;

$inicio = $maximo*$inicio;

$sql = "SELECT * FROM usuarios LIMIT $inicio,$maximo";

$query = mysql_query($sql);

$total = mysql_num_rows($query);

while ($coluna = mysql_fetch_array($query)){

$nome = $coluna["nome"];

echo "$nome<br>";

}

// Calculando pagina anterior

$menos=$pagina-1;

// Calculando pagina posterior

$mais=$pagina+1;

// Calculos para a mostragem de paginas

$p_ini=$mais-1;

$p_ini=$maximo*$p_ini;

// Querys para a mostragem de paginas

$p_query = mysql_query("SELECT * FROM usuarios LIMIT $p_ini,$maximo");

$p_total = mysql_num_rows($p_query);

// Mostragem de pagina

if($menos>0) {

   echo "<a href=\"pagina2.php?pagina=$menos\"><< Anteriores</a> ";

} if(mysql_num_rows($p_query)>0) {

   echo " <a href=\"pagina2.php?pagina=$mais\"> Proximas >></a>";

}

?>

<br>

<?

// Listando as paginas

$i=1;

$pgs=$total/$maximo;

$formatado=number_format($pgs);

if($formatado<$pgs) { 

   $formatado=$formatado+1;

}

echo "Pág. $pagina";

?>

wink.gif

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

algue me ajuda com essa paginação aqui?

$conexao= mysql_connect("mysql.guiacamposdojordao.com","guiacamposdojord","guia") or print mysql_error();
mysql_select_db("guiacamposdojord",$conexao) or print mysql_error();
$pag = $_GET["pagina"];
$registros = 7;
if (!$pag) {
$pagina = 1;
} else {
$pagina = $pag;
}
$ini2 = $pagina-1;
$ini = $ini2 * $registros;
$fim = $ini + $registros;
$busca = mysql_query("SELECT * FROM fotos WHERE evento='$_GET[evento]' LIMIT $ini,$fim");
$total = mysql_query("SELECT * FROM fotos");
while ($r = mysql_fetch_array($busca)) {
$foto = $r["foto"];
$idfoto = $r["idfoto"];
echo "<a href='foto_cima.php?id=$idfoto' target='cima' ><img src='$foto' border='0' width='73' height='47' onclick='comentarios.php?idfoto=$linha[idfoto]' target='comentarios'></a>   ";
}
$rows = mysql_num_rows($total);
$anterior = $pagina-1;
$proxima = $pagina+1;
$nada = $rows / $registros;
$pags = ceil($nada);
echo "<br>";
for ($num=0;$num<$pags;$num++) {
$num2 = $num+1;
if ($pagina==$num2) {
echo "<b>[$num2]</b>";
} else {
echo "<a href=fotos.php?pagina=$num2&evento=$_GET[evento]> $num2 </a>";
}
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

<?
$conexao= mysql_connect("mysql.guiacamposdojordao.com","usuario","senha") or print mysql_error();
mysql_select_db("guiacamposdojord",$conexao) or print mysql_error();
$pag_views = 2;
If (!$pagina) {
$pagina = 1;
} else {
$pagina = $pagina;
}
$inicio = "$pagina –1"; //ASSIM INICIAREMOS DA LINHA ZERO DO BANCO
$inicio = $pagina * $pag_views;
$sql = "SELECT * FROM paginacao";
$query = mysql_query($sql);
$limita = "$sql LIMIT $inicio,$pag_views";
$executa = mysql_query($limita);
$linhas = mysql_num_rows($query);
$paginas = $total / $pag_views;
$volta = "$pagina –1";
$proxima = "$pagina +1";
while ($mostra = mysql_fetch_array($executa)) {
echo $mostra[nome];
}
If ($volta>0) echo "<a href=?pagina=$volta>Volta</a><br>";
For ($i = 0; $i <= $paginas; $i++){ //REPETE ATÉ QUE SE ACABEM AS LINHAS 
$pag = $i +1; //EVITA A PÁGINA ZERO
echo "<a href=?pagina=$pag>$pag</a> "; //MOSTRA O LINK PARA A PÁGINA
}
if ($pagina < $paginas) {
echo "<a href=?pagina=$proxima>Proxima</a>";
}
?>

seu erro estava em

if (!$pagina){

$pagina = 0;

} else {

$pagina = $pagina;

}

quando deveria ser

if (!$pagina){

$pagina = 1;

} else {

$pagina = $pagina;

}

Link para o comentário
Compartilhar em outros sites

  • 0
E outra não esqueça de pegar o valor de $pagina

se for por GET use

$pagina = $_GET["pagina"];

se for por POST use

$pagina = $_POST["pagina"];

use register_globals = off

Fabyo,

"$_GET" é um método...

Para pegar variáveis com este método é necessário um formulário.

A variavel $pagina é passada via URL mesmo. Não existe a necessidade de usar um método, métodos são para formulários.

Abs

Link para o comentário
Compartilhar em outros sites

  • 0

É uma maneira "usual", pelo fato do método $_GET usar, também, a URL para passar os parâmetros.

A diferença entre isso é que:

Ao se passar um parâmetro via URL ele vai crú.

Ao se passar um parâmetro via GET, o método usa a função URLENCODE($VAL).

Se você passar o parâmetro via URL sem o método e usar o método para capturar o valor (isso é fato). Mas além de poluir, consideravelmente, o código você estará usando outra função desnecessária $val = $_GET[key]; vai resultar em $val = urldecode($val); podendo assim, ao desencodar o valor acarretar um problema de interpretação, como uma possível substituição de sinal.

Abs

Link para o comentário
Compartilhar em outros sites

  • 0

http://php.planetmirror.com/manual/pt_BR/l....predefined.php

http://php.planetmirror.com/manual/pt_BR/s...sterglobals.php

Quando on, register_globals injetará (veneno) em seus scripts todos os tipos de variáveis, como variáveis request de formulários HTML. Isto junta-se com o fato do PHP não exigir inicialização de variáveis siginifica que escrever códigos inseguros é muito mais fácil. Não foi uma decisão difícil, mas a comunidade PHP decidiu, por definição, desabilitar esta diretiva. Quando on, as pessoas usavam variáveis ainda sem saber realmente, com certeza, de onde elas vinham e podiam apenas supor. Variáveis internas que estão definidas no próprio script conseguem se misturar com dados requisitados enviados pelos usuários e desabilitando register_globals muda isto. Vamos demonstrar com um exemplo de mal uso de register_globals:

Um outro exemplo é aquele das sessões. Quando register_globals = on, nós poderíamos também usar $username em nosso exemplo abaixo, mas novamente você deve imaginar que $username poderia, também, vir de outros meios, tal como GET (pela URL).

Tente pegar um valor que veio pela url direto sem usar $_GET

mas com o register_gobals = off e o display_erros = on

Link para o comentário
Compartilhar em outros sites

  • 0

tipo um noob se metendo na conversa...

mais realmente acho que so funciona sem o $_GET se o register_global estiver em on, porque em off acho que não funciona não... pelo menos comigo não funcionou...

hoje eu uso o $_GET['$pagina'] so por meio de seguranca...

[]´s

Link para o comentário
Compartilhar em outros sites

  • 0
tipo um noob se metendo na conversa...

mais realmente acho que so funciona sem o $_GET se o register_global estiver em on, porque em off acho que não funciona não... pelo menos comigo não funcionou...

hoje eu uso o $_GET['$pagina'] so por meio de seguranca...

[]´s

você esta certo, o kevin quiz dizer isso mesmo

Link para o comentário
Compartilhar em outros sites

  • 0

no caso de que o parametro pela URL se chama GET. .. ela não tem esse nome a toa. não precisa vir por um form.. se você digitar a url?parametro, voce ta passando por um metodo get

Link para o comentário
Compartilhar em outros sites

  • 0

GET é o nome de um método que passa as variáveis para um array através da URL se utilizando de um função chamada URLENCODE()

Nunca usei GET para pegar variáveis de URL.

Uso GET quando chamo um método ao submeter uma consulta.

Testem:

<?

if ($nome){

echo $nome;

} else {

header("location: ?nome=Newton Pasqualini");

}

?>

quanto aos erros NOTICE, deveria ser de conhecimento que bastando setar

error_reporting = E_ALL & ~E_NOTICE

eles nunca mais irão aparecer!

Link para o comentário
Compartilhar em outros sites

  • 0

Mas pra qual a finalidade de um notice?

será que é só pra ficar ocultando eles na hora que aparece?

será que eles foram criado só pra encher?

http://br2.php.net/manual/pt_BR/ref.errorfunc.php#e-notice

http://br2.php.net/manual/pt_BR/language.v....predefined.php

string urlencode ( string str)

Retorna uma string em que todos os caracteres não-alfanuméricos com exceção de -_. são substituidos com um sinal de porcento (%) siguido por dois digitos hexadecimais e espaços codificados como um sinal de (+).

GET é o método HTTP de solicitacao de pagina. independente de você estar submetendo um form ou digitando o endereco no navegador, você ta usando GET porque é o padrão...  olha qualquer log de um servidor e você entende

wink.gif

Link para o comentário
Compartilhar em outros sites

  • 0

GET é o nome de um método que passa as variáveis para um array através da URL se utilizando de um função chamada URLENCODE()

Nunca usei GET para pegar variáveis de URL.

Uso GET quando chamo um método ao submeter uma consulta.

Testem:

<?

if ($nome){

echo $nome;

} else {

header("location: ?nome=Newton Pasqualini");

}

?>

quanto aos erros NOTICE, deveria ser de conhecimento que bastando setar

error_reporting = E_ALL & ~E_NOTICE

eles nunca mais irão aparecer!

Tava de passagem mas resolvi comentar...

GET é um método HTTP pra solicitar páginas.. (dai o nome GET)... mesmo que voce digite no browser o endereco, voce está usando GET...

Nada a ver com "nome de metodo que passa as variaveis pra um array".

Alem do mais, o método que voce usa com o register_globals ON foi desativado por padrão a partir do PHP 4.20 por questões de segurança. Apesar de alguns servidores deixarem ON por compatibilidade, é recomendado então que voce sete pra OFF num include no inicio dos scripts, ate pra se proteger de erros acidentais.

No site do PHP tem toda a explicação dos problemas de seguranca que isso causa...

Quanto ao NOTICE, acho que é dever do programador fazer com que o seu programa não dê erros.. e não setar diretivas pra esconde-los caso acontecam...

Link para o comentário
Compartilhar em outros sites

  • 0
GET é o nome de um método que passa as variáveis para um array através da URL se utilizando de um função chamada URLENCODE()

Nunca usei GET para pegar variáveis de URL.

Uso GET quando chamo um método ao submeter uma consulta.

Testem:

<?

if ($nome){

echo $nome;

} else {

header("location: ?nome=Newton Pasqualini");

}

?>

quanto aos erros NOTICE, deveria ser de conhecimento que bastando setar

error_reporting = E_ALL & ~E_NOTICE
eles nunca mais irão aparecer!
Tava de passagem mas resolvi comentar... GET é um método HTTP pra solicitar páginas.. (dai o nome GET)... mesmo que voce digite no browser o endereco, voce está usando GET... Nada a ver com "nome de metodo que passa as variaveis pra um array". Alem do mais, o método que voce usa com o register_globals ON foi desativado por padrão a partir do PHP 4.20 por questões de segurança. Apesar de alguns servidores deixarem ON por compatibilidade, é recomendado então que voce sete pra OFF num include no inicio dos scripts, ate pra se proteger de erros acidentais. No site do PHP tem toda a explicação dos problemas de seguranca que isso causa... Quanto ao NOTICE, acho que é dever do programador fazer com que o seu programa não dê erros.. e não setar diretivas pra esconde-los caso acontecam...
NOTICE não é um erro! Como o próprio nome diz é só uma NOTÍCIA!!! É uma informação... Não desenvolvo e nunca desenvolvi aplicações com erros, OCULTO as informações que serviriam para um possível Debbug do script, que não me serve de nada
GET é um método HTTP pra solicitar páginas.. (dai o nome GET)... mesmo que voce digite no browser o endereco, voce está usando GET...

E agora não é mais PHP é HTTP?

GET? ou REQUEST?

GET = pegar

REQUEST = solicitar (como você disse)

Você tem mesmo experiência com Apache ou servidores HTTP ou só leu textos?

Não estou aqui para malhar ninguém nem para ser malhado!!!

Acredito que o conceito de um fórum é compartilhar e aprender, não querer ser mais que ninguém!!!

Segue abaixo um trecho do HTTP.CONF do Apache, onde nós poderemos perceber que o HTTP se utilizada de REQUEST:

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

# KeepAlive: Whether or not to allow persistent connections (more than

# one request per connection). Set to "Off" to deactivate.

#

KeepAlive On

#

# MaxKeepAliveRequests: The maximum number of requests to allow

# during a persistent connection. Set to 0 to allow an unlimited amount.

# We recommend you leave this number high, for maximum performance.

#

MaxKeepAliveRequests 100

#

# KeepAliveTimeout: Number of seconds to wait for the next request from the

# same client on the same connection.

#

KeepAliveTimeout 15

#

# Apache on Win32 always creates one child process to handle requests. If it

# dies, another child process is created automatically. Within the child

# process multiple threads handle incoming requests. The next two

# directives control the behaviour of the threads and processes.

#

#

# MaxRequestsPerChild: the number of requests each child process is

# allowed to process before the child dies. The child will exit so

# as to avoid problems after prolonged use when Apache (and maybe the

# libraries it uses) leak memory or other resources. On most systems, this

# isn't really needed, but a few (such as Solaris) do have notable leaks

# in the libraries. For Win32, set this value to zero (unlimited)

# unless advised otherwise.

#

# NOTE: This value does not include keepalive requests after the initial

# request per connection. For example, if a child process handles

# an initial request and 10 subsequent "keptalive" requests, it

# would only count as 1 request towards this limit.

#

MaxRequestsPerChild 0

#

# Number of concurrent threads (i.e., requests) the server will allow.

# Set this value according to the responsiveness of the server (more

# requests active at once means they're all handled more slowly) and

# the amount of system resources you'll allow the server to consume.

#

ThreadsPerChild 50

||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Estou aqui para ensinar e para aprender também, pois eu não sei de tudo!!!

Agora vamos voltar ao PHP - sessão sobre HTTP http://br.php.net/manual/pt_BR/ref.http.php

Um artigo sobre os novos métodos do PHP4

http://www.blaz.com.br/colunas/php/artigo.asp?ID=16

Agora pode fechar o tópico

Link para o comentário
Compartilhar em outros sites

  • 0

Como você falou estamos aqui pra ensinar e aprender, mas meu se ta viajando cara

e outra se esqueceu de comentar sobre o register globals

e cara na boa não leva pro lado pessoal não, mas analise os fatos

No PHP 4.2.0 e posteriores, o valor default da diretiva register_globals é off. Esta é a maior modificação no PHP. Tendo register_globals off afeta o conjunto de variáveis predefinidas disponíveis no escopo global. POr exemplo, para ler DOCUMENT_ROOT você usará $_SERVER['DOCUMENT_ROOT'] em vez de $DOCUMENT_ROOT, ou $_GET['id'] da URL http://www.example.com/test.php?id=3 em vez de $id, or $_ENV['HOME] em vez de $HOME.

se não leu tudo que se foi falado aqui?

deixa seu register em off e teste de novo seus scripts

E agora não é mais PHP é HTTP?

analisa sua pergunta e analise o que quer dizer HTTP

http://www.icmc.usp.br/ensino/material/html/http.html

NOTICE:

Noticia

E_NOTICE (integer)  Notícia em tempo de execução. Indica que o script encontrou alguma coisa que pode indicar um erro, mas que também possa acontecer durante a execução normal do script. 

Notice ou noticia não é um erro mesmo, mas ele da uma mensagem de possiveis erros,ou aviso

Link para o comentário
Compartilhar em outros sites

  • 0

Ok fabyo, sem problemas!!!

Como eu disse, eu não sei de tudo, assim como ninguém aqui sabe.

Esuqeci de comentar sobre register globals, sim. Apesar de saber o que acarreta deixar essa diretiva em ON, são raras as vezes que tenho de me utilizar de outro mecanismo.

O que me deixou nervoso foi a estupides e a conviquição com que o Natan se referiu a minha pessoa indiretamente.

Fazer uma afirmação de que crio scripts e oculto erros neles, é absurdo!!!

Eu só quis "comentar" que o uso do $_GET para pegar variáveis na URL sem a submissão dos dados de um formulário com este método é errada.

quanto a HTTP, ok!!! O cara viajo, estavamos discutindo o método GET do "PHP", e não um "REQUEST" do HTTP.

Não quero encrenca com ninguém, e mesmo com register globals em OFF você pega a variável da URL sem usar GET.

Acredito que seja melhor fechar este tópico mesmo, ele era sobre "Paginação", e não sobre métodos e register globals.

Chega... Desculpem a grosseria dos POST´s

Abs

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...