Ir para conteúdo

POWERED BY:

Arquivado

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

Radubrêdo

pequeno eero no código

Recommended Posts

Consegui esse código de paginação no site do phpbrasil, porém fui testá-lo, dai está apresentando um erro:

ta dando erro de q a váriavel $página (referente a parte sublinha do código abaixo) nao ter sido definida.

 

Alguém poderia me ajudar a descobrir o significado dessa variável e como faço para eliminar esse erro?

 

 

 

//Primeiramente realize a conexão ao MySQL.

<?php

$conn = mysql_connect("host","user","senha");

$banco = mysql_select_db("bancodedados");

?>

 

//Agora vamos criar a cláusula SQL que deve ser executada.

<?php

$busca = "SELECT * FROM tabela";

?>

 

//Vamos ao trabalho... Especifique o total de registros a serem exibidos por página:

<?php

$total_reg = "10"; // número de registros por página

?>

 

//Se a página não for especificada a variável "pagina" tomará o valor 1 (isso evita de exibir a página 0 de início)

 

<?php

if (!$pagina) {

$pc = "1";

} else {

$pc = $pagina;

}

?>

 

 

//Vamos determinar o valor inicial das buscas limitadas.

 

<?php

$inicio = $pc - 1;

$inicio = $inicio * $total_reg;

?>

 

//Vamos selecionar os dados e exibir a paginação.

<?php

$limite = mysql_query("$busca LIMIT $inicio,$total_reg");

$todos = mysql_query("$busca");

 

$tr = mysql_num_rows($todos); // verifica o número total de registros

$tp = $tr / $total_reg; // verifica o número total de páginas

 

// vamos criar a visualização

while ($dados = mysql_fetch_array($limite)) {

$nome = $dados["nome"];

echo "Nome: $nome<br>";

}

 

// agora vamos criar os botões "Anterior e próximo"

$anterior = $pc -1;

$proximo = $pc +1;

if ($pc>1) {

echo " <a href='?pagina=$anterior'><- Anterior</a> ";

}

echo "|";

if ($pc<$tp) {

echo " <a href='?pagina=$proximo'>Próxima -></a>";

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse script funcionou aqui

você não modificou nada nesse código para q ele funcionace?De qualquer forma você poderia me explicar a função da variável Página?Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tah dando o erro e aparecendo os links ou soh tah dando o erro?

Eu fiz definir para aparecer o conteúdo de um único registro por página.Dai quando mando executar....aparece o conteúdo de um único registro + mensagem de erro (variável $pagina não definida) + link (próximo).Porém qdo clico no link próximo, a página continua a mesma, ou seja, não mostra o conteúdo dos outros registros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tah dando o erro e aparecendo os links ou soh tah dando o erro?

Eu fiz definir para aparecer o conteúdo de um único registro por página.

Dai quando mando executar....aparece o conteúdo de um único registro + mensagem de erro (variável $pagina não definida) + link (próximo).

Porém qdo clico no link próximo, a página continua a mesma, ou seja, não mostra o conteúdo dos outros registros.

Esse outro script é mais elabordo...mas tá dando erro tb:

 

<?

//Conexão com o banco de dados

include "conecta_mysql.inc";

 

$sql = mysql_query("SELECT * FROM tabela");

 

$lpp = 1; // Especifique quantos resultados você quer por página

$total = mysql_num_rows($sql); // Esta função irá retornar o total de linhas na tabela

$paginas = ceil($total / $lpp); // Retorna o total de páginas

if(!isset($pagina)) { $pagina = 0; } // Especifica uma valor para variavel pagina caso a mesma não esteja setada

$inicio = $pagina * $lpp; // Retorna qual será a primeira linha a ser mostrada no MySQL

$sql = mysql_query("SELECT * FROM tabela LIMIT $inicio, $lpp"); // Executa a query no MySQL com o limite de linhas.

 

while($dados = mysql_fetch_array($sql)) {

$Q_1 = $dados["Q_1"];

$Q_2 = $dados["Q_2"];

 

echo "<b>Nome:</b> $Q_1<br>";

echo "<b>Nascimento:</b> $Q_2<br>";

}

 

if($pagina > 0) {

$menos = $pagina - 1;

$url = "$PHP_SELF?pagina=$menos";

echo "<a href="$url">Anterior</a>"; // Vai para a página anterior

}

for($i=0;$i<$paginas;$i++) { // Gera um loop com o link para as páginas

$url = "$PHP_SELF?pagina=$i";

echo " | <a href="$url">$i</a>";

}

if($pagina < ($paginas - 1)) {

$mais = $pagina + 1;

$url = "$PHP_SELF?pagina=$mais";

echo " | <a href="$url">Próxima</a>";

}

?>

 

Será q preciso modificar alguma coisa, para poder funcionar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O possivel erro é estar com REGISTER GLOBALS OFF que implica em todas as variaveis globais do PHP tem de ser declaradas por completo, como: $_SERVER, $_REQUEST, $_POST...Ou seja, $_REQUEST['pagina'] é diferente de $pagina,voce tem duas opcoes... ou mudar na config do PHP pra habilitar o register globals ou alterar $pagina por $_REQUEST['pagina']Isso ocorre quando se esta usando o EasyPHP 1.7 que vem com esta opcao desabilitada...Veja se é isso..

Compartilhar este post


Link para o post
Compartilhar em outros sites

O possivel erro é estar com REGISTER GLOBALS OFF que implica em todas as variaveis globais do PHP tem de ser declaradas por completo, como: $_SERVER, $_REQUEST, $_POST...

 

Ou seja, $_REQUEST['pagina'] é diferente de $pagina,

 

voce tem duas opcoes... ou mudar na config do PHP pra habilitar o register globals ou alterar $pagina por $_REQUEST['pagina']

 

Isso ocorre quando se esta usando o EasyPHP 1.7 que vem com esta opcao desabilitada...

 

Veja se é isso..

Valeu pela ajuda!

 

Agora gostaria de saber qual melhor escolha:

mudar na config do PHP pra habilitar o register globals ou alterar $pagina por $_REQUEST['pagina']

 

Como será q vai funcionar sem problemas no servidor do provedor? Como saberei sobre o comportamento do meu programa qdo estiver rodando no provedor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que nao causa erro em nenhum lugar é usar o metodo do register globals off..

 

usando sempre $_POST $_REQUEST... e etc..

 

eu trabalho desse modo... pq uso o Easy PHP... mas mtos n usam...

 

segundo a documentacao do EasyPHP isso melhora o desempenho dos scripts..

como n sou expert em benchmark.. n posso afirmar essa info..

 

a escolha vai de cada um.. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que nao causa erro em nenhum lugar é usar o metodo do register globals off..

 

usando sempre $_POST $_REQUEST... e etc..

 

eu trabalho desse modo... pq uso o Easy PHP... mas mtos n usam...

 

segundo a documentacao do EasyPHP isso melhora o desempenho dos scripts..

como n sou expert em benchmark.. n posso afirmar essa info..

 

a escolha vai de cada um.. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Galera, fiz a modificação nas partes sublinhadas abaixo:

 

1) acrescentei $pagina= $_REQUEST['pagina'];

para resolver o problema do REGISTER GLOBALS OFF

 

2) mesmo assim continuou dando erro, dai eu modifiquei:

if (!($pagina)) para if (empty($pagina))

 

Assim gostaria que vcs testassem ai para ver se funciona normalmente.

 

 

 

<?php

//Conexão com o banco de dados

include "conecta_mysql.inc";

 

//Agora vamos criar a cláusula SQL que deve ser executada

$busca = "SELECT * FROM enquete";

 

//Vamos especificar o total de registros a serem exibidos por página:

$total_reg = "1"; // número de registros por página

 

$pagina= $_REQUEST['pagina'];

 

//Se a página não for especificada a variável "pagina" tomará o valor 1 (isso evita de exibir a página 0 de início)

if (empty($pagina)) {

$pc = "1";

} else {

$pc = $pagina;

}

 

//Vamos determinar o valor inicial das buscas limitadas.

$inicio = $pc - 1;

$inicio = $inicio * $total_reg;

 

//Vamos selecionar os dados e exibir a paginação.

$limite = mysql_query("$busca LIMIT $inicio,$total_reg");

$todos = mysql_query("$busca");

 

$tr = mysql_num_rows($todos); // verifica o número total de registros

$tp = $tr / $total_reg; // verifica o número total de páginas

 

// vamos criar a visualização

while ($dados = mysql_fetch_array($limite)) {

$Q_1 = $dados["Q_1"];

$Q_2 = $dados["Q_2"];

 

echo "<b>Nome:</b> $Q_1<br>";

echo "<b>Nascimento:</b> $Q_2<br>";

}

 

// agora vamos criar os botões "Anterior e próximo"

$anterior = $pc -1;

$proximo = $pc +1;

if ($pc>1) {

echo " <a href='?pagina=$anterior'><- Anterior</a> ";

}

echo "|";

if ($pc<$tp) {

echo " <a href='?pagina=$proximo'>Próxima -></a>";

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que nao causa erro em nenhum lugar é usar o metodo do register globals off..

 

usando sempre $_POST $_REQUEST... e etc..

 

eu trabalho desse modo... pq uso o Easy PHP... mas mtos n usam...

 

segundo a documentacao do EasyPHP isso melhora o desempenho dos scripts..

como n sou expert em benchmark.. n posso afirmar essa info..

 

a escolha vai de cada um.. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Galera, fiz a modificação nas partes sublinhadas abaixo:

 

1) acrescentei $pagina= $_REQUEST['pagina'];

para resolver o problema do REGISTER GLOBALS OFF

 

2) mesmo assim continuou dando erro, dai eu modifiquei:

if (!($pagina)) para if (empty($pagina))

 

Assim gostaria que vcs testassem ai para ver se funciona normalmente.

 

 

 

<?php

//Conexão com o banco de dados

include "conecta_mysql.inc";

 

//Agora vamos criar a cláusula SQL que deve ser executada

$busca = "SELECT * FROM enquete";

 

//Vamos especificar o total de registros a serem exibidos por página:

$total_reg = "1"; // número de registros por página

 

$pagina= $_REQUEST['pagina'];

 

//Se a página não for especificada a variável "pagina" tomará o valor 1 (isso evita de exibir a página 0 de início)

if (empty($pagina)) {

$pc = "1";

} else {

$pc = $pagina;

}

 

//Vamos determinar o valor inicial das buscas limitadas.

$inicio = $pc - 1;

$inicio = $inicio * $total_reg;

 

//Vamos selecionar os dados e exibir a paginação.

$limite = mysql_query("$busca LIMIT $inicio,$total_reg");

$todos = mysql_query("$busca");

 

$tr = mysql_num_rows($todos); // verifica o número total de registros

$tp = $tr / $total_reg; // verifica o número total de páginas

 

// vamos criar a visualização

while ($dados = mysql_fetch_array($limite)) {

$Q_1 = $dados["Q_1"];

$Q_2 = $dados["Q_2"];

 

echo "<b>Nome:</b> $Q_1<br>";

echo "<b>Nascimento:</b> $Q_2<br>";

}

 

// agora vamos criar os botões "Anterior e próximo"

$anterior = $pc -1;

$proximo = $pc +1;

if ($pc>1) {

echo " <a href='?pagina=$anterior'><- Anterior</a> ";

}

echo "|";

if ($pc<$tp) {

echo " <a href='?pagina=$proximo'>Próxima -></a>";

}

?>

<{POST_SNAPBACK}>

|Tentei adaptar este script ao meu.

 

Quando vou para a proxima página fica em branco

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.