Ir para conteúdo

POWERED BY:

Arquivado

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

alanrg.83

[RESOLVIDO] Problemas com script de paginação (where)

Recommended Posts

Bom estou usando um script do Fabyo que pequei aqui mesmo

 

Paginação

PHP<?mysql_connect("localhost");mysql_select_db("banco");$re = mysql_query("SELECT count(*) as total FROM tabela");$total = mysql_result($re, 0, "total");$pagina = 0;if(isset($_GET["pagina"])) {$pagina = $_GET["pagina"];}$limite = 10;$paginas = ceil($total / $limite);$inicio = $pagina * $limite; $sql = mysql_query("SELECT * FROM tabela LIMIT $inicio, $limite"); $conta = mysql_num_rows($sql);while($l = mysql_fetch_array($sql)) {$nome = $l["nome"];echo $nome."<br>";}if($pagina > 0) {$menos = $pagina - 1;$url = $_SERVER["PHP_SELF"]."?pagina=".$menos;echo "<a href=\"$url\">Anterior</a>"; }for($i = 1;$i < $paginas; $i++) { $url = $_SERVER["PHP_SELF"]."?pagina=".$i;echo " | <a href=\"$url\">$i</a>";}if($pagina < $paginas) {$mais = $pagina + 1;$url = $_SERVER["PHP_SELF"]."?pagina=".$mais;echo " | <a href=\"$url\">Próxima</a>";}?>

Mas meu problem esta no seguinte, nao sao todas as linhas da tabela que preciso, mas só as que um campo x tiver um determinado valor.

Quando coloco uma condição where neste codigo ele para de funcionar.

è possivel colocar uma condição, ou para este tipo de paginação terai que ter uma tabela para cada valor de x?

E este campo x caso possa usar o where ele tem que ser uma chave?

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce usou where nas duas sqls?assim?:$re = mysql_query("SELECT count(*) as total FROM tabela WHERE campo = 'x'");$sql = mysql_query("SELECT * FROM tabela WHERE campo = 'x' LIMIT $inicio, $limite"); caso tenha usado assim, da um echo mysql_error(); para saber o erro que retorna...e o campo não precisa ser uma chave não!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem o where funciona mas com ele não!!!Ele mostra o primiro registro depois nao mostra mais nenhum.

meu codigo esta assim:

produtos.php

<?php include("conexao.php");mysql_connect($hot,$login,$senha)or die ("Nao conctou");mysql_select_db($banco);$var=$_GET["var"];$re = mysql_query("SELECT count(*) as total FROM camisetas WHERE categoria = '$var'");$total = mysql_result($re, 0, "total");$pagina = 0;if(isset($_GET["pagina"])) {$pagina = $_GET["pagina"];}$limite = 1;$paginas = ceil($total / $limite);$inicio = $pagina * $limite; $sql = mysql_query("SELECT * FROM camisetas WHERE categoria = '$var' LIMIT $inicio, $limite"); $conta = mysql_num_rows($sql);while($l = mysql_fetch_array($sql)) {$id = $l["ID"];$titulo = $l["titulo"];$tema = $l["tema"];$autor = $l["autor"];$imagen = $l["imagen"];$estilo = $l["estilo"];}?>

o link que cahma a pagina esta assim

<a href="produtos.php?var=universitaria">

Compartilhar este post


Link para o post
Compartilhar em outros sites

deem uma olhada nesta parte do script

if($pagina > 0) {$menos = $pagina - 1;$url = $_SERVER["PHP_SELF"]."?pagina=".$menos; //DUVIDA AQUIecho "<a href=\"$url\">Anterior</a>"; }for($i = 1;$i < $paginas; $i++) { $url = $_SERVER["PHP_SELF"]."?pagina=".$i;echo " | <a href=\"$url\">$i</a>";}if($pagina < $paginas) {$mais = $pagina + 1;$url = $_SERVER["PHP_SELF"]."?pagina=".$mais;echo " | <a href=\"$url\">Próxima</a>";}

Com estou paginando apneas algumas linhas de minha tabela eu coloquei um WHERE no SELECT

$re = mysql_query("SELECT count(*) as total FROM estampas WHERE categoria= $x");

 

pra atribuir um valor a $x eu uso $x=$_GET['var']; este 'var' esta vindo la do index, quando o usuário escolheu a opção de paginação.

O problema é que quando dou um

$url = $_SERVER["PHP_SELF"]."?pagina=".$menos;

nao estou passando novamente o var, aqula condição que o usuário atribuiu está se perdendo por isso nao estava funcionando!

Como coloco nos liks de proximo e anterior mais esta condiçao?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está perdendo o valor de $x, quando usar anterior ou próximo..

tenta assim..

 

$url = $_SERVER["PHP_SELF"]."?pagina=".$menos."&var=".$x;
é isso mesmo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente só mais uma duvida aqui neste código.Como posso fazer para que se eu escolha um item da tabela ele me apresente este item primeiro e pagine o restante dos registros?Tipo ele começar a paginação nao pelo primeiro mas sim pelo que escolhi, o problema é que nao sei em que linha este elemento esta ei vou ter que verificar primeiro como faço isso?

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.