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

Esse Tá Teimoso De Funcionar...


Guest - Paulo -

Pergunta

Guest - Paulo -

Olá, Newton Pasqualini e pessoal do fórum...

Eu fiz um teste no meu sistema, está tudo normal, sem erros, aparecem os livros cadastrados e tudo mais, porém, quando era para ser feita a paginação, ela não acontece!

Existe uma categoria "Religiosos", para fazer um teste, eu coloquei o pag_views=2 e cadastrei 3 livros na categoria, ou seja, era para aparecer os dois primeiros livros e aparecer aquele negócio de "1, 2 Próxima Página", mas isto não está acontecendo!

Para conferir, basta acessar o link:

http://www.cosmopolisemrede.com.br/utilita...ia.php?codigo=3

O código que estou usando é o seguinte:

<?

$pag_views = '10';

if (!$pagina) {

$pagina = 1;

} else {

$pagina = $pagina;

}

$start = $pagina -1;

$inicio = $start * $pag_views;

$sql = "select * from acervo where categoria='$codigo'";

$query = @mysql_query($sql);

$limita = "$sql LIMIT $inicio,$pag_views";

$executa = @mysql_query($limita);

$volta = $pagina -1;

$proxima = $pagina +1;

if (!$query){

die ("Problemas ao executar o sql !!!");

} else {

$total = mysql_num_rows($query);

$paginas = $total / $pag_views;

if($total == 0) {

echo "nenhum livro nessa categorias";

} else {

if($total>0){

echo "$total livros nessa categoria";

} else {

echo "Nenhum livro encontrado nessa categoria";

}

while ($coluna = @mysql_fetch_array($executa)){

$idlivro = $coluna['idlivro'];

$nome = $coluna['nome'];

echo "<a href='verlivro.php?codigo=$idlivro'>$nome</a><br>";

}

if ($volta>0) {

echo "<a href=?pagina=$volta>Volta</a> ";

for ($i = 0; $i <= $paginas; $i++){

$pag = $i +1;

if ($pag>1){

echo "<a href=?pagina=$pag>$pag</a> ";

}

}

if ($proxima<$paginas) {

echo "<a href=?pagina=$proxima>Proxima</a>";

}

}

mysql_close($conn);

}

}

?>

Alguém tem idéia do que está errado no código?

Obrigado pela atenção...

Paulo

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

<?
$pag_views = '10';

if (!$pagina) {
$pagina = 1;
} else {
$pagina = $pagina;
}

$start = $pagina -1;
$inicio = $start * $pag_views; 

$sql = "select * from acervo where categoria='$codigo'";
$query = @mysql_query($sql);
$limita = "$sql LIMIT $inicio,$pag_views"; 
$executa = @mysql_query($limita);

$volta = $pagina -1; 
$proxima = $pagina +1;

if (!$query){
die ("Problemas ao executar o sql !!!");
} else {
$total = mysql_num_rows($query);
$paginas = $total / $pag_views; 
if($total == 0) {
echo "nenhum livro nessa categorias";
} else {
if($total>0){
echo "$total livros nessa categoria";
} else {
echo "Nenhum livro encontrado nessa categoria";
}
while ($coluna = @mysql_fetch_array($executa)){
$idlivro = $coluna['idlivro'];
$nome = $coluna['nome'];
echo "<a href='verlivro.php?codigo=$idlivro'>$nome</a><br>";
}
if ($volta>0) { 
echo "<a href=?pagina=$volta>Volta</a> ";
for ($i = 0; $i <= $paginas; $i++){
$pag = $i +1; 
if ($pag>1){
echo "<a href=?pagina=$pag>$pag</a> ";
}
}
if ($pagina<$paginas) {
echo "<a href=?pagina=$proxima>Proxima</a>"; 
}
}
mysql_close($conn);
}
}
?>

Um erro extremamento básico!!!

Entendendo que a variável páginas é = 1.6 e você está na página 1, o link para a próxima página estava assim:

if ($proxima<$páginas) echo "link próxima página";

$proxima é = 2

$páginas = 1.6

Ele não vai exibir o link para a próxima página. Como resolver?

Mudar o if para:

if ($pagina<$páginas) echo "link próxima página";

$pagina é = 1

$paginas é = 1.6 e é maior que $página, então ele exibe o botão!!!

Abraços amigo

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Paulo -

Galera, testei as duas sugestões, mas o sistema continua não exibindo o link "Próxima Página"! sad.gif

Estou usando $pag_views = '2';

Será que não são esses números quebrados?

Existe algum código de paginação pronto pra gente comparar? Tem alguma coisa errada nesse!

huh.gifhuh.gif

Falou

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Paulo -

Olá Newton Pasqualini, muito obrigado pela sua explicação!

Porém o meu caso acho que é perdido, este código que devia estar funcionando normalmente não está paginando!

Mas obrigado pela força

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Paulo -

O código é aquele que está na mensagem acima:

<?

$pag_views = '10';

if (!$pagina) {

$pagina = 1;

} else {

$pagina = $pagina;

}

$start = $pagina -1;

$inicio = $start * $pag_views;

$sql = "select * from acervo where categoria='$codigo'";

$query = @mysql_query($sql);

$limita = "$sql LIMIT $inicio,$pag_views";

$executa = @mysql_query($limita);

$volta = $pagina -1;

$proxima = $pagina +1;

if (!$query){

die ("Problemas ao executar o sql !!!");

} else {

$total = mysql_num_rows($query);

$paginas = $total / $pag_views;

if($total == 0) {

echo "nenhum livro nessa categorias";

} else {

if($total>0){

echo "$total livros nessa categoria";

} else {

echo "Nenhum livro encontrado nessa categoria";

}

while ($coluna = @mysql_fetch_array($executa)){

$idlivro = $coluna['idlivro'];

$nome = $coluna['nome'];

echo "<a href='verlivro.php?codigo=$idlivro'>$nome</a><br>";

}

if ($volta>0) {

echo "<a href=?pagina=$volta>Volta</a> ";

for ($i = 0; $i <= $paginas; $i++){

$pag = $i +1;

if ($pag>1){

echo "<a href=?pagina=$pag>$pag</a> ";

}

}

if ($pagina<$paginas) {

echo "<a href=?pagina=$proxima>Proxima</a>";

}

}

mysql_close($conn);

}

}

?>

Não aparece por nada o link Próxima Página!

dry.gifhuh.gifmad.gifblink.gifph34r.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Você tinha feito tento IF no código que tonteei... rsrsrs biggrin.gif

<?
$pag_views = 10;
if (!$pagina) {
$pagina = 1;
} else {
$pagina = $pagina;
}
$start = $pagina -1;
$inicio = $start * $pag_views; 
$sql = "SELECT * FROM acervo WHERE categoria='$codigo'";
$query = mysql_query($sql);
$limita = "$sql LIMIT $inicio,$pag_views"; 
$executa = mysql_query($limita);
$volta = $pagina -1; 
$proxima = $pagina +1;
$total = mysql_affected_rows($query);
$paginas = $total / $pag_views; 
if ($total>0) {
echo "$total livros nessa categoria<br>";
while ($coluna = mysql_fetch_array($executa)){
$idlivro = $coluna['idlivro'];
$nome = $coluna['nome'];
echo "<a href='verlivro.php?codigo=$idlivro'>$nome</a><br>";
}
if ($volta>0) { 
echo "<a href=?pagina=$volta>Volta</a> ";
for ($i = 0; $i <= $paginas; $i++){
$pag = $i +1; 
if ($pag>1){
echo "<a href=?pagina=$pag>$pag</a> ";
}
}
if ($pagina<$paginas) {
echo "<a href=?pagina=$proxima>Proxima</a>"; 
}
}
} else {
echo "Nenhum livro encontrado nessa categoria";
}
?>

Abs

Link para o comentário
Compartilhar em outros sites

  • 0
na linha

$paginas = $total / $pag_views;

tente fazer assim

$paginas = ceil($total / $pag_views);

essa função arredonda um número para cima, ou seja, se a divsião der 1.1 ele vai arredondar para 2, já que 1.1 já vai precisar de duas páginas....

Legal, valeu pela função, será muito util posteriormente!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Paulo -

Ave, agora quebro o código de vez...

Warning: mysql_affected_rows(): supplied resource is not a valid MySQL-Link resource in /home/cosmopol/public_html/utilitarios/biblioteca/vercategoria1.php on line 101

Nenhum livro encontrado nessa categoria

Link para o comentário
Compartilhar em outros sites

  • 0

Você se conectou ao banco?

mysql_connect('host','user','pass');
Fica assim:
<?
mysql_connect('host','user','pass');
$pag_views = 10;
if (!$pagina) {
$pagina = 1;
} else {
$pagina = $pagina;
}
$start = $pagina -1;
$inicio = $start * $pag_views; 
$sql = "SELECT * FROM acervo WHERE categoria='$codigo'";
$query = mysql_query($sql);
$limita = "$sql LIMIT $inicio,$pag_views"; 
$executa = mysql_query($limita);
$volta = $pagina -1; 
$proxima = $pagina +1;
$total = mysql_affected_rows($query);
$paginas = $total / $pag_views; 
if ($total>0) {
echo "$total livros nessa categoria<br>";
while ($coluna = mysql_fetch_array($executa)){
$idlivro = $coluna['idlivro'];
$nome = $coluna['nome'];
echo "<a href='verlivro.php?codigo=$idlivro'>$nome</a><br>";
}
if ($volta>0) { 
echo "<a href=?pagina=$volta>Volta</a> ";
for ($i = 0; $i <= $paginas; $i++){
$pag = $i +1; 
if ($pag>1){
echo "<a href=?pagina=$pag>$pag</a> ";
}
}
if ($pagina<$paginas) {
echo "<a href=?pagina=$proxima>Proxima</a>"; 
}
}
} else {
echo "Nenhum livro encontrado nessa categoria";
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Paulo -

Essa nem os maiores desenvolvedores não conseguiram resolver! sad.gif

Sim...eu já tinha feito conexão com o banco!

Acho que vou dar uma procurada em códigos prontos para ver o que está acontecendo, o problema é...onde encontrar um script pronto que faça paginação?

Será que o admin do fórum não pode ajudar?

Esse código com certeza vai servir para muitas e muitas pessoas que visitarem este fórum posteriormente!

Se a gente fechar o tópico agora e deixar esse caso aberto, muita gente vai ficar perguntando sobre paginação ainda por aqui!

Se este código funcionar é caso solucionado, basta falar: Entra no tópico tal que lá tem um código pronto!

Mais enquanto esse negócio não funcionar fica difícil! dry.gif

Qual o nome do admin do fórum ou o cara que fez o site? Ele deve saber resolver! wink.gif

FALOUUUU

Link para o comentário
Compartilhar em outros sites

  • 0

cara, esse fórum é um script pronto que existe na internet, você pode pegar o código se quiser....

toma um script de paginação, eu mesmo que fiz e uso em todos os meus códigos:

paginacao.php

<?
//--------------------------------------------------//
//Desenvolvido por Luciano Davoglio Molinari//
//--------------------------------------------------//
if(!isset($pag)) $pag = 0;
$quantidade = $qtde;
$inicio = $pag * $quantidade;

$sql_pag = mysql_query("Select * from $tabela $clausula") or die ("erro de sql pag: ".mysql_error());
$total = mysql_num_rows($sql_pag);
$paginas = ceil($total / $quantidade);

//anterior
if($pag > 0) {
 $anterior = $pag - 1;
 $monta_link.= "<a href='?pag=$anterior$complink' class='$class'>Anterior</a>";
}

$monta_link.= " | ";
for($i=0;$i<$paginas;$i++) {
if($pag == "$i") {
 $monta_link.= " <a href='?pag=$i$complink' class='$class'><b>[$i]</b></a> |";
} else {
 $monta_link.= " <a href='?pag=$i$complink' class='$class'>$i</a> |";
}
}

//proxima
if($pag < ($paginas - 1)) {
 $proxima = $pag + 1;
 $monta_link.= " <a href='?pag=$proxima$complink' class='$class'>Próxima</a>";
}
?>
ai para usar é simples..
$class = 'estilocss'; // se o link tiver algum css você coloca aqui, senão deixa em branco mesmo
$tabela = "acervo"; //tabela no bd
$qtde = "10"; //quantida a ser exibida por página
$clausula = "WHERE categoria='$codigo'"; //clausula sql
$complink = "&codigo=$codigo"; //valores a serem passados pela url
require("paginacao.php");
$sql = mysql_query("SELECT * FROM $tabela $clausula Limit $inicio,$quantidade") or die ("erro de sql: ".mysql_error());
if($total == 0) {
echo "nenhum registro encontrado";
} else {
echo "$total registros encontrados";
while($i = mysql_fetch_array($sql)) {
....
}
echo "<div align='center' class='$class'><hr>$monta_link</div>";//vai exibir os links de paginação
}

vê se funciona agora, qualquer coisa posta ai

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - Paulo -

Galera, agora funcionou a paginação!

Só que a primeira página está sendo 0

Acessem o link para conferir:

http://www.cosmopolisemrede.com.br/utilita...ia.php?codigo=1

Coloquei o limite por página = 2

O que eu devo mudar no código abaixo para fazer com que a primeira página seja 1 ao invéz de 0?

paginacao.php

<?

if(!isset($pag)) $pag = 0;

$quantidade = $qtde;

$inicio = $pag * $quantidade;

$sql_pag = mysql_query("Select * from $tabela $clausula") or die ("erro de sql pag: ".mysql_error());

$total = mysql_num_rows($sql_pag);

$paginas = ceil($total / $quantidade);

//anterior

if($pag > 0) {

$anterior = $pag - 1;

$monta_link.= "<a href='?pag=$anterior$complink' class='$class'>Anterior</a>";

}

$monta_link.= " | ";

for($i=0;$i<$paginas;$i++) {

if($pag == "$i") {

$monta_link.= " <a href='?pag=$i$complink' class='$class'><b>[$i]</b></a> |";

} else {

$monta_link.= " <a href='?pag=$i$complink' class='$class'>$i</a> |";

}

}

//proxima

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

$proxima = $pag + 1;

$monta_link.= " <a href='?pag=$proxima$complink' class='$class'>Próxima</a>";

}

?>

Tentei aquele código:

if (!$pagina) {

$pagina = 1;

} else {

$pagina = $pagina;

}

Mas acho que não consegui aplicá-lo corretamente porque não adiantou nada!

Alguém pode me dar uma força?

Valeuuuuuuuuuuuuuu

Link para o comentário
Compartilhar em outros sites

  • 0

se é só questão de estética, tenta assim...

....
....
for($i=0;$i<($paginas);$i++) {
$j = $i + 1;
if($pag=="$i") {
$monta_link.= " <a class='$class' href=\"?pag=$i$complink\"><b>[$j]</b></a> | ";
} else {
$monta_link.= " <a class='$class' href=\"?pag=$i$complink\">$j</a> |";
}
}
...
...

e se cadastra ai no fórum

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...