Ir para conteúdo

POWERED BY:

Arquivado

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

ronaldosdb

[RESOLVIDO] paginacao de resultado

Recommended Posts

Ola turma, tentei adaptar os scripts de paginacao do forum para o meu mas nao ta dando certo, portanto,

queria que voces me ajudassem a paginar esse code...

 

Resumi aki a minha consulta

$sql_produtos="select * from produtos where id_produto='$resultado[id_produto]'";$query_produtos=mysql_query($sql_produtos);$produtos=mysql_fetch_array($query_produtos);

Eu queria faze com ele aqle esquema do google 1, 2, 3...

Valeu

ronaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa.. tenta esse script..

<?php//CONECTA COM O BANCO DE DADOS $conexao = mysql_connect("localhost", "root", "12345678" ); mysql_select_db("seubanco", $conexao) or die(mysql_error()); /////////config paginação/////////// // defina o número de registros exibidos por página$num_por_pagina = 5;if (!$pagina) {   $pagina = 1;}$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;///////// fim config /////////////sua conulta$consulta = ("SELECT * FROM clientes clientes  LIMIT $primeiro_registro, $num_por_pagina");//sua consulta aqui.. não tire LIMIT $primeiro_registro, $num_por_pagina$resultado = mysql_query($consulta , $conexao);while($linha = mysql_fetch_array($resultado)){echo $linha['nome_cli'].'<br>';}//conta quantos resultados teve sua consulta$contar = "SELECT COUNT(*) FROM clientes";//sua consulta aquilist($total) = mysql_fetch_array(mysql_query($contar,$conexao));$total_paginas = $total/$num_por_pagina;$prev = $pagina - 1;$next = $pagina + 1;// se página maior que 1 (um), então temos link para a página anteriorif ($pagina > 1) {$prev_link = "<a href=".$_SERVER['PHP_SELF']."?pagina=$prev\"><b>Anterior</b></a>";} else { // senão não há link para a página anterior$prev_link = "<font color=silver>Anterior</font>";}// se número total de páginas for maior que a página corrente, então temos link para a próxima páginaif ($total_paginas > $pagina) {	$next_link = "<a href=".$_SERVER['PHP_SELF']."?pagina=$next\"><b>Próxima</b>";} else { // senão não há link para a próxima página$next_link = "<font color=silver>Próxima</font>";}// vamos arredondar para o alto o número de páginas  com a função ceil().$total_paginas = ceil($total_paginas);$painel = "";for ($x=1; $x<=$total_paginas; $x++) {  if ($x==$pagina) { // se estivermos na página corrente, não exibir o link para visualização desta página	$painel .= " <strong>[$x]</strong> ";  } else {		  $painel .= " <a href=".$_SERVER['PHP_SELF']."?pagina=$x\">[$x]</a>";  }}// exibir painel na telaif ($total_paginas >=2){echo "<blockquote>$prev_link | $painel | $next_link <p><br>";}?>

qualquer coisa posta ae....(no site do imasters tem exemplo de paginação!)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom coloquei seu script aqui e ele pagina belezinha, mas ele dá um erro dizendo que a variavel $PHP_SELF não foi definida. Como resolver isso?Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 49Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom coloquei seu script aqui e ele pagina belezinha, mas ele dá um erro dizendo que a variavel $PHP_SELF não foi definida. Como resolver isso?

 

Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 49

 

Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61

 

Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61

 

Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61

 

Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61

 

Notice: Undefined variable: PHP_SELF in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 61

tenta colocar no lugar dele, isso aqui $_SERVER['PHP_SELF']

 

exemplo:

<form  name="consulta" action="<? $_SERVER['PHP_SELF'] ?>" method="post">
e posta ai!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então o problema é aqui: Segue abaixo o código:<?php//CONECTA COM O BANCO DE DADOSinclude "conecta_mysql.inc.php";/////////config paginação///////////// defina o número de registros exibidos por página$num_por_pagina = 4;$pagina=0;if (!$pagina) { $pagina = 1;}$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;///////// fim config /////////////sua conulta$consulta = ("SELECT * FROM manutencao WHERE situacao = 'PENDENTE' order by nome_lab desc LIMIT $primeiro_registro, $num_por_pagina");//sua consulta aqui.. não tire LIMIT $primeiro_registro, $num_por_pagina$resultado = mysql_query($consulta , $conexao);while($linha = mysql_fetch_array($resultado)){echo $linha['nome_lab'].'<br>';}//conta quantos resultados teve sua consulta$contar = "SELECT COUNT(*) FROM manutencao";//sua consulta aquilist($total) = mysql_fetch_array(mysql_query($contar,$conexao));$total_paginas = $total/$num_por_pagina;$prev = $pagina - 1;$next = $pagina + 1;// se página maior que 1 (um), então temos link para a página anteriorif ($pagina > 1) { $prev_link = "<a href=\"$PHP_SELF?pagina=$prev\"><b>Anterior</b></a>";} else { // senão não há link para a página anterior$prev_link = "<font color=silver>Anterior</font>";}// se número total de páginas for maior que a página corrente, então temos link para a próxima páginaif ($total_paginas > $pagina) { $next_link = "<a href=\"$PHP_SELF?pagina=$next\"><b>Próxima</b>";} else { // senão não há link para a próxima página$next_link = "<font color=silver>Próxima</font>";}// vamos arredondar para o alto o número de páginas com a função ceil().$total_paginas = ceil($total_paginas);$painel = "";for ($x=1; $x<=$total_paginas; $x++) { if ($x==$pagina) { // se estivermos na página corrente, não exibir o link para visualização desta página $painel .= " <strong>[$x]</strong> "; } else { $painel .= " <a href=\"$PHP_SELF?pagina=$x\">[$x]</a>"; }}// exibir painel na telaif ($total_paginas >=2){echo "<blockquote>$prev_link | $painel | $next_link <p><br>";}?>O problema esta no <a href=\"$PHP_SELF?pagina$x\">....

Compartilhar este post


Link para o post
Compartilhar em outros sites

então naquele link

 

use $_SERVER["PHP_SELF"]

 

com register_globals = off nao existe $PHP_SELF use no lugar dela = $_SERVER["PHP_SELF"]

desculpe esqueci de tirar, vou arrumar ele... ok

tenta ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está dificil aqui ....mudei para $_SERVER['PHP_SELF'] e ainda esta com problemas:<?php//CONECTA COM O BANCO DE DADOSinclude "conecta_mysql.inc.php";/////////config paginação///////////// defina o número de registros exibidos por página$num_por_pagina = 4;$pagina=0;if (!$pagina) {$pagina = 1;}$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;///////// fim config /////////////sua conulta$consulta = ("SELECT * FROM manutencao WHERE situacao = 'PENDENTE' order by nome_lab desc LIMIT $primeiro_registro, $num_por_pagina");//sua consulta aqui.. não tire LIMIT $primeiro_registro, $num_por_pagina$resultado = mysql_query($consulta , $conexao);while($linha = mysql_fetch_array($resultado)){echo $linha['nome_lab'].'<br>';}//conta quantos resultados teve sua consulta$contar = "SELECT COUNT(*) FROM manutencao";//sua consulta aquilist($total) = mysql_fetch_array(mysql_query($contar,$conexao));$total_paginas = $total/$num_por_pagina;$prev = $pagina - 1;$next = $pagina + 1;// se página maior que 1 (um), então temos link para a página anteriorif ($pagina > 1) {$prev_link = "<a href=\"$_SERVER['PHP_SELF']?pagina=$prev\"><b>Anterior</b></a>";} else { // senão não há link para a página anterior$prev_link = "<font color=silver>Anterior</font>";}// se número total de páginas for maior que a página corrente, então temos link para a próxima páginaif ($total_paginas > $pagina) {$next_link = "<a href=\"$_SERVER['PHP_SELF']?pagina=$next\"><b>Próxima</b>";} else { // senão não há link para a próxima página$next_link = "<font color=silver>Próxima</font>";}// vamos arredondar para o alto o número de páginas com a função ceil().$total_paginas = ceil($total_paginas);$painel = "";for ($x=1; $x<=$total_paginas; $x++) {if ($x==$pagina) { // se estivermos na página corrente, não exibir o link para visualização desta página$painel .= " <strong>[$x]</strong> ";} else {$painel .= " <a href=\"$_SERVER['PHP_SELF']?pagina=$x\">[$x]</a>";}}// exibir painel na telaif ($total_paginas >=2){echo "<blockquote>$prev_link | $painel | $next_link <p><br>";}?>Dá esse erro aqui:Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 40O que fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está dificil aqui ....mudei para $_SERVER['PHP_SELF'] e ainda esta com problemas:

 

<?php

 

//CONECTA COM O BANCO DE DADOS

include "conecta_mysql.inc.php";

 

 

/////////config paginação///////////

 

// defina o número de registros exibidos por página

$num_por_pagina = 4;

$pagina=0;

 

 

if (!$pagina) {

$pagina = 1;

}

$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;

 

///////// fim config ///////////

 

//sua conulta

$consulta = ("SELECT * FROM manutencao WHERE situacao = 'PENDENTE' order by nome_lab desc LIMIT $primeiro_registro, $num_por_pagina");

//sua consulta aqui.. não tire LIMIT $primeiro_registro, $num_por_pagina

$resultado = mysql_query($consulta , $conexao);

while($linha = mysql_fetch_array($resultado)){

echo $linha['nome_lab'].'

';

}

 

 

//conta quantos resultados teve sua consulta

$contar = "SELECT COUNT(*) FROM manutencao";//sua consulta aqui

 

list($total) = mysql_fetch_array(mysql_query($contar,$conexao));

$total_paginas = $total/$num_por_pagina;

 

$prev = $pagina - 1;

$next = $pagina + 1;

// se página maior que 1 (um), então temos link para a página anterior

if ($pagina > 1) {

$prev_link = "Anterior";

} else { // senão não há link para a página anterior

$prev_link = "Anterior";

}

 

 

 

// se número total de páginas for maior que a página corrente, então temos link para a próxima página

if ($total_paginas > $pagina) {

$next_link = "Próxima";

} else { // senão não há link para a próxima página

$next_link = "Próxima";

}

 

// vamos arredondar para o alto o número de páginas com a função ceil().

$total_paginas = ceil($total_paginas);

$painel = "";

for ($x=1; $x<=$total_paginas; $x++) {

if ($x==$pagina) { // se estivermos na página corrente, não exibir o link para visualização desta página

$painel .= " [$x] ";

} else {

$painel .= " [$x]";

}

}

// exibir painel na tela

if ($total_paginas >=2){

echo "

$prev_link | $painel | $next_link

 

";

}

?>

 

Dá esse erro aqui:

 

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\arquivos de programas\easyphp1-8\www\projeto ete\mnt_pendentes.php on line 40

 

 

O que fazer?

deixa assim os links, exemplos:

 

 

<a href=".$_SERVER['PHP_SELF']."?pagina=$x\">
$prev_link = "<a href=".$_SERVER['PHP_SELF']."?pagina=$prev\"><b>Anterior</b></a>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, sei que to enchendo o saco

mas eu nao to conseguindo adaptar a paginacao para meu code

se nao for mto, se alguem puder me dar uma luz, nao sei onde inserir o codigo

 

 

segue abaixo a paginacao q ta dando certo

paginacao.php

<?php include "conexao.php";?><?php$currentPage = $_SERVER["PHP_SELF"];$maxRows_rs_produtos = 5;$proximapagina = 0;if (isset($_GET['proximapagina'])) {  $proximapagina = $_GET['proximapagina'];}$startRow_rs_produtos = $proximapagina * $maxRows_rs_produtos;mysql_select_db('produtos');$query_rs_produtos = "SELECT * FROM produtos";$query_limit_rs_produtos = sprintf("%s LIMIT %d, %d", $query_rs_produtos, $startRow_rs_produtos, $maxRows_rs_produtos);$rs_produtos = mysql_query($query_limit_rs_produtos) or die(mysql_error());$row_rs_produtos = mysql_fetch_assoc($rs_produtos);if (isset($_GET['totaldeprodutos'])) {  $totaldeprodutos = $_GET['totaldeprodutos'];} else {  $all_rs_produtos = mysql_query($query_rs_produtos);  $totaldeprodutos = mysql_num_rows($all_rs_produtos);}$totalPages_rs_produtos = ceil($totaldeprodutos/$maxRows_rs_produtos)-1;$queryString_rs_produtos = "";if (!empty($_SERVER['QUERY_STRING'])) {  $params = explode("&", $_SERVER['QUERY_STRING']);  $newParams = array();  foreach ($params as $param) {	if (stristr($param, "proximapagina") == false && 		stristr($param, "totaldeprodutos") == false) {	  array_push($newParams, $param);	}  }  if (count($newParams) != 0) {	$queryString_rs_produtos = "&" . htmlentities(implode("&", $newParams));  }}$queryString_rs_produtos = sprintf("&totaldeprodutos=%d%s", $totaldeprodutos, $queryString_rs_produtos);?><table border="0" width="79%" align="center">  <tr>	<td width="31%" align="center" class="menu01"><?php if ($proximapagina > 0) { // Show if not first page ?>		<a href="<?php printf("%s?proximapagina=%d%s", $currentPage, max(0, $proximapagina - 1), $queryString_rs_produtos); ?>"><img src="images/anterior.gif" width="87" height="22" border="0" /></a>		<?php } // Show if not first page ?>	</td>	<td width="23%" align="center" class="menu01"><?php if ($proximapagina < $totalPages_rs_produtos) { // Show if not last page ?>		<a href="<?php printf("%s?proximapagina=%d%s", $currentPage, min($totalPages_rs_produtos, $proximapagina + 1), $queryString_rs_produtos); ?>"><img src="images/proximo.gif" width="87" height="22" border="0" /></a>		<?php } // Show if not last page ?>	</td>  </tr></table><?php do { ?>	<tr bgcolor="#FFFFCC">	  <td width="17%" height="20"><span class="style12"><?php echo strtoupper($row_rs_produtos['nome']); ?></span>		</p></td>	  <td width="7%"><span class="style8"><span class="style12"><?php echo $row_rs_produtos['nascimento']; ?></span></span></td>	  <td width="10%"><a href="mailto:<?php echo $row_rs_produtos['email']; ?>" class="style12"><?php echo strtolower($row_rs_produtos['email']); ?></a></td>	  <td width="10%"><span class="style8"><span class="style12"><?php echo $row_rs_produtos['escolaridade']; ?></span></span></td>	  <td width="10%"><span class="style8"><span class="style12"><?php echo $row_rs_produtos['descricao']; ?></span></span></td>	  <td width="7%"><span class="style8"><span class="style12"><?php echo $row_rs_produtos['preco']; ?></span></span></td>	  <td width="10%"><span class="style8"><span class="style12"><?php echo $row_rs_produtos['valido']; ?></span></span></td>		</tr>	<?php } while ($row_rs_produtos = mysql_fetch_assoc($rs_produtos)); ?></table>

 

 

 

E AQUI O MEU CODIGO BUSCAR.PHP

em que eu nao to conseguindo paginar o resultado de

$produtos=mysql_fetch_array($query_produtos);

 

Valeu

ronaldo

 

<table width="100%" align="center" cellpadding="0" cellspacing="0" valign=top>	<tr>		<td valign="top">			<table width=100% border=0>				<tr><td colspan=2 width=100% height=3 background="images/fundo_pontilhado.gif"></td></tr>				<tr><td colspan=2 width=100% height=3 background="images/fundo_pontilhado.gif"></td></tr>				<tr><td colspan=2 width=100% height=3><font class="menutopo_cinza">Busca por </font> <font class="menutopo"><img src="images/seta.gif">  <em><?php print $_REQUEST[busca]; ?></em></font></td></tr>				<tr><td colspan=2 width=100% height=3 background="images/fundo_pontilhado.gif"></td></tr>				<tr><td colspan=2 width=100% height=3 background="images/fundo_pontilhado.gif"></td></tr>			<?php	include "conexao.php";	//verifico se todas as categorias foram escolhidas 	if($_REQUEST[cat]=="todas") {		$sql="SELECT distinct pc.id_produto, p.nome, p.descricao, p.preco, pc.id_produto			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'			";			$query=mysql_query($sql);			$linha=mysql_num_rows($query);			$resultado = mysql_fetch_array($query);										}	else 				//verifico se apenas uma categoria foi escolhida e faco a consulta				$sql="SELECT * 			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'			AND pc.id_categoria =$_REQUEST[cat]";				$query=mysql_query($sql);				$linha=mysql_num_rows($query);	//verifico se nenhum produto foi encontrado	if($linha==0) {				print "<table width=60% border=0><center>				<tr><td colspan=2 width=100% height=3 background=\"images/fundo_pontilhado.gif\"></td></tr>				<tr><td colspan=2 width=100% height=3 background=\"images/fundo_pontilhado.gif\"></td></tr>				<em><font class=\"menutopo\"><em><center><b>Nenhum produto foi encontrado, tente buscar novamente</b></em></font></td></tr>				";				}	 else //se ha produto, mostro eles	 	 {	print"<td colspan=2 width=100% height=3><center><font class=\"not1\"><b>Foram encontrados $linha produtos </b></font></td>";		while($resultado=mysql_fetch_array($query))				{						//verificar em quais categorias este meu produto está cadastrado									$sql_catalogado="									select id_categoria from produtos_categorias 										where 											id_produto='$resultado[id_produto]'									";									$query_catalogado=mysql_query($sql_catalogado);									while($resultado_catalogado=mysql_fetch_array($query_catalogado))									{										//descobrir o nome da categoria										$sql_categoria="										select 											id_categoria,											titulo 												from categorias 													where 														id_categoria='$resultado_catalogado[id_categoria]'										";										$query_categoria=mysql_query($sql_categoria);										$resultado_categoria=mysql_fetch_array($query_categoria);										$catalogado.=$resultado_categoria[titulo]."<br>";										}			print "				<tr>			";			if (file_exists("images/produtos/$resultado[id_produto].jpg")) $imagem="images/produtos/$resultado[id_produto].jpg";				elseif (file_exists("images/produtos/$resultado[id_produto].gif")) $imagem="images/produtos/$resultado[id_produto].gif";				elseif (file_exists("images/produtos/$resultado[id_produto].png")) $imagem="images/produtos/$resultado[id_produto].png";				else $imagem="images/produtos/sem_foto_thumb.gif";								//minha consulta sql de produtos 			$sql_produtos="select * from produtos where id_produto='$resultado[id_produto]'";			$query_produtos=mysql_query($sql_produtos);			$produtos=mysql_fetch_array($query_produtos);			$precoproduto = number_format($produtos[preco],2,",",".");						//printo o form e os campos hiden			print "						<td>						<form name=\"comprar\" action=\"\" method=\"post\">							<input type=\"hidden\" name=\"link\" value=\"10\">							<input type=\"hidden\" name=\"produto\" value=\"$precoproduto\">							<input type=\"hidden\" name=\"comprar\" value=\"sim\">							<input type=\"hidden\" name=\"quantidade\" value=1>						<table width=100% cellpading=0 cellspacing=0 border=0>							<tr>								<td>									<a href=\"?cat=$resultado_categoria[id_categoria]&produto=$produtos[id_produto]\">									";				$foto="";				//foreach para pega as extensoes dos thumb				foreach($extensoes as $tipo => $extensao)				{					$nome_imagem="images/produtos/$produtos[id_produto]_thumb.$extensao";					if(file_exists($nome_imagem)) $foto="<img src=\"$nome_imagem\" border=\"0\">";				}					if(empty($foto)) $foto="<img src=\"images/produtos/sem_foto_thumb.gif\" border=\"0\">";				print "<p align=\"left\">";				print $foto;				print "									<font face=arial color=777777 size=2>									<strong>$produtos[nome]</strong><br><b>Categoria:</b> $resultado_categoria[titulo]									<br>									$produtos[descricao]									<br><br>									</a>									</font>																	</td>								<td width=70 align=center>									<a href=\"?cat=$resultado[id_categoria]&produto=$produtos[id_produto]\"><font face=arial color=ff9900 size=2><strong>Compre<br>R$ $precoproduto</strong></font><br><br>									<image src=\"images/carrinho.gif\" border=\"no\"></a>								</td>							</tr>						</table>						</form>					</td>				</tr>				<tr>					<td colspan=2 width=100% height=3 background=\"images/fundo_pontilhado.gif\"></td>				</tr>			";						}}	?>				<tr>					<td colspan=2 width=100% height=3 background=\"images/fundo_pontilhado.gif\"></td>				</tr>			</table>		</td>		<td valign="top"><? include "promocoes.php";?></td>	</tr></table><center></table>  </td>  </tr>  </table></center><p> </p>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Ronaldo, tudo bem....

ainda está dando certo neh!!! hummm seguinte!

[*]Está dando erro na paginação? ou não da erro, e quando você vai para a próxima página não apreceda?

[*]Me explica como é está consulta que você está fazendo(onde a páginação vai ser usada)

[*]Nesta consulta você usa algum tipo de categoria, ou alguma coisa do tipo?

vamos por parte que da certo!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi David

 

Esse paginacao.php q eu criei e postei ai em cima funfa...fiz num arquivo separado

 

Mas qdo eu insiro o codigo na minha pagina de busca nao da certo, nao funfa nada, zoa a busca, por isso nao consigo nem te dizer onde q ta o erro pq nao to sabendo inserir essa paginacao no meu code ou criar uma pra ele

 

De fato, eu o seguinte:

se o user manda um parametro pra ser buscado em todas as categorias eu busco em todo a table produtos...

mas se ele fala, eu so quero buscar na categoria x eu busco so naqela categoria...(tem um if ai em cima) pois eu busco todos os produtos do array resultado

'$resultado[id_produto]'";
entaum, acredito que a consulta qu eu preciso paginar é essa:

if($_REQUEST[cat]=="todas") {		$sql="SELECT distinct pc.id_produto, p.nome, p.descricao, p.preco, pc.id_produto			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'			";			$query=mysql_query($sql);			$linha=mysql_num_rows($query);			$resultado = mysql_fetch_array($query);
ou essa: (depende da escolha na pagina anterior, eh um if, tomei ate o cuidado de deixa o nome das clausulas iguais....

			  }	else 		//verifico se apenas uma categoria foi escolhida e faco a consulta				$sql="SELECT * 			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'			AND pc.id_categoria =$_REQUEST[cat]";				$query=mysql_query($sql);				$linha=mysql_num_rows($query);
essas duas consultas de cima (sendo que so uma é realizada, isso eu posso te garantir) vao pra um while chamado resultado...nesse while eu pego o indice $resultado[id_produto] e vou buscando os dados do produto como abaixo

 

//minha consulta sql de produtos 			$sql_produtos="select * from produtos where id_produto='$resultado[id_produto]'";			$query_produtos=mysql_query($sql_produtos);			$produtos=mysql_fetch_array($query_produtos);
Se eu busco um produto que contenha a letra a, por exemplo,, a consulta me retorna 22 produtos:

$linha=mysql_num_rows($query);

Foram encontrados $linha produtos </b></font></td>";

 

Bom, nao sei se expliquei direito, na minha visao, ou eu tenho q pagina a consulta de cima (do if) ou a do produtos, vai da na mesma nao e?

valeu

ronaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

:rolleyes: é ficou meio confuso sim....rsrsrs mas vamos lá... você diz:

Mas qdo eu insiro o codigo na minha pagina de busca nao da certo, nao funfa nada, zoa a busca

posta ae seu script todo para o pessoal ver como está.... (ronaldo sua consulta está funfado neh?)

Compartilhar este post


Link para o post
Compartilhar em outros sites

a consulta ta funfando ....eh essa ai em cima

 

$sql="SELECT * 			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'			AND pc.id_categoria =$_REQUEST[cat]";				$query=mysql_query($sql);				$linha=mysql_num_rows($query);
mas ainda naum consegui paginar tio google...

 

se alguem puder ajudar

valeu

ronaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

a consulta ta funfando ....eh essa ai em cima

$sql="SELECT * 			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'			AND pc.id_categoria =$_REQUEST[cat]";				$query=mysql_query($sql);				$linha=mysql_num_rows($query);
mas ainda naum consegui paginar tio google...se alguem puder ajudarvaleuronaldo
Ronaldo, bom dia!!!vamos tentar apenas assim...
<?php$conexao = mysql_connect("localhost", "root", "12345678" ); mysql_select_db("seu_banco", $conexao) or die(mysql_error()); /////####config paginação####$num_por_pagina = 2;// defina o número de registros exibidos por páginaif (!$pagina) {   $pagina = 1;}$primeiro_registro = ($pagina*$num_por_pagina) - $num_por_pagina;//$sql="SELECT * FROM clientes LIMIT $primeiro_registro, $num_por_pagina";$sql="SELECT *			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%".$_REQUEST['busca']."%'			AND pc.id_categoria ='".$_REQUEST['cat']."' LIMIT $primeiro_registro, $num_por_pagina";			$query=mysql_query($sql,$conexao);while($linha = mysql_fetch_array($query)){echo $linha['seus_campos_aqui'].'<br>';}$contar = "SELECT COUNT(*) FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%".$_REQUEST['busca']."%'			AND pc.id_categoria ='".$_REQUEST['cat']."'";list($total) = mysql_fetch_array(mysql_query($contar,$conexao));$total_paginas = $total/$num_por_pagina;$prev = $pagina - 1;$next = $pagina + 1;// se página maior que 1 (um), então temos link para a página anteriorif ($pagina > 1) {  //if(isset($_REQUEST['busca']) && isset($_REQUEST['cat'])){	 $prev_link = "<a href=".$_SERVER['PHP_SELF']."?pagina=$prev&busca=".$_REQUEST['busca']."&cat=".$_REQUEST['cat']."><b>Anterior</b></a>";//	}} else { // senão não há link para a página anterior$prev_link = "<font color=silver>Anterior</font>";}// se número total de páginas for maior que a página corrente, então temos link para a próxima páginaif ($total_paginas > $pagina) {   // if(isset($_REQUEST['busca']) && isset($_REQUEST['cat'])){	  $next_link = "<a href=".$_SERVER['PHP_SELF']."?pagina=$next&busca=".$_REQUEST['busca']."&cat=".$_REQUEST['cat']."><b>Próxima</b>";  //  }} else { // senão não há link para a próxima página$next_link = "<font color=silver>Próxima</font>";}// vamos arredondar para o alto o número de páginas que serão necessárias para exibir todos os registros. Por exemplo, se temos 20 registros e mostramos 6 por página, nossa variável $total_paginas será igual a 20/6, que resultará em 3.33. Para exibir os 2 registros restantes dos 18 mostrados nas primeiras 3 páginas (0.33), será necessária a quarta página. Logo, sempre devemos arredondar uma fração de número real para um inteiro de cima e isto é feito com a função ceil().$total_paginas = ceil($total_paginas);$painel = "";for ($x=1; $x<=$total_paginas; $x++) {  if ($x==$pagina) { // se estivermos na página corrente, não exibir o link para visualização desta página	$painel .= " <strong>[$x]</strong> ";  } else {  $painel .= " <a href=".$_SERVER['PHP_SELF']."?pagina=$x&busca=".$_REQUEST['busca']."&cat=".$_REQUEST['cat'].">[$x]</a>";  }}// exibir painel na telaif ($total_paginas >=2){echo "<blockquote>$prev_link | $painel | $next_link <p><br>";}?>
Bom fiz desse jeito para você ter uma base para adaptar ao seu..(eu sempre uso essa paginação)ok... tenta desse jeito, sem colocar muitas coisas na página.... muda apenas o nome do campo que será exibido.. oke posta novamente! http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

david, pessoal, consegui...valeu

 

fiz assim

 

primeiro setei os limites

$pg=($pg=$_GET['pg']) ? $pg:1;								$registros=5; // Registros por página				$ini=($pg-1)*$registros;

 

depois fiz a consulta com o limite setado

$cat = "todas";		$busca = $_REQUEST[busca];		$sql="SELECT distinct pc.id_produto, p.nome, p.descricao, p.preco, pc.id_produto			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'			limit $ini,$registros";			$query=mysql_query($sql);
dai fiz uma consulta para contar total de registros

$sql_conta="SELECT distinct pc.id_produto, p.nome, p.descricao, p.preco, pc.id_produto			FROM produtos p, produtos_categorias pc WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'";			$query_conta=mysql_query($sql_conta);			$linha=mysql_num_rows($query);			$linha1=mysql_num_rows($query_conta);			$resultado = mysql_fetch_array($query);

dai paginei

<?//paginacao da busca	//fim da tabela//contagem das linhas$total=$linha1;//setando anterior e proxima$anterior=$pg-1;$proxima=$pg+1;//setando pagina$pgs=ceil($total/$registros);if ($pg>1) {echo '<center><font class=not1><a href="?cat='.$cat.'&busca='.$busca.'&procurar=sim&pg='.$anterior.'"><strong>Anterior</strong></a></font>';} else {echo '<center><font class=not1><strong>Anterior</strong></font>';}for ($num=1;$num<=$pgs;$num++) {if ($pg==$num) {echo ' <font class=not1><b>['.$num.']</b></font> ';} else {echo '<font class=not1><a href="?cat='.$cat.'&busca='.$busca.'&procurar=sim&pg='.$num.'"> '.$num.'</a></font>';}}if ($pg<$pgs) {echo '<font class=not1> <a href="?cat='.$cat.'&busca='.$busca.'&procurar=sim&pg='.$proxima.'"><strong>Próxima</strong></a>';} else {echo ' <strong><font class=not1>Próxima</font></strong>';};switch ($total){case 0:print "";break;default:}?>

valeu - topico resolvido

ta ai pra quem quiser um exemplo

 

brigadao david, todos

ronaldo

Compartilhar este post


Link para o post
Compartilhar em outros sites

parabéns... então tá funfando legal neh..use sempre ' em:

$_REQUEST['busca'];$_POST['busca'];$_GET['busca'];

Quando Precisar é só postar no Fórum..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoal....ressuscitei esse topico porque me dei conta de um problema...

a paginacao está suprimindo resultados

 

Por exemplo, se a consulta retorna 11 registros...a paginacao so mostra 8. Alguem percebe onde está o erro?

Ou será que fiz algo errado, porque nao está dando erro nenhum, mas quando eu executo a query no mysql ele me mostra um numero de registro superior ao que é exibido...

 

Um abraco, ronaldo

 

busca.php

<?php	include "conexao.php";			//pagina get comeca com 1				$pg = $_GET['pg'];				if ($pg==NULL) $pg = "1";								$registros=5; // Registros por página				$ini=($pg-1)*$registros;				//print "comeca com o registro "; 				//print $ini;				//print " + ";				//print $registros;	//verifico se todas as categorias foram escolhidas 	if($_REQUEST[cat]=="todas") {		$cat = "todas";		$busca = $_REQUEST[busca];		$sql="SELECT distinct p.id_produto, p.nome, p.descricao, p.preco FROM produtos p			WHERE p.nome LIKE '%$_REQUEST[busca]%'limit $ini,$registros";			$query=mysql_query($sql);			$linha=mysql_num_rows($query);						//print $sql;			$sql_conta="SELECT distinct p.id_produto, p.nome, p.descricao, p.preco FROM produtos p WHERE p.nome LIKE '%$_REQUEST[busca]%'";			$query_conta=mysql_query($sql_conta);			$linha1=mysql_num_rows($query_conta);			$resultado = mysql_fetch_array($query);							}	else 		{		//verifico se apenas uma categoria foi escolhida e faco a consulta			$cat = $_REQUEST[cat];			$busca = $_REQUEST[busca];			$sql="SELECT * 			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'			AND pc.id_categoria =$_REQUEST[cat] limit $ini,$registros";				$query=mysql_query($sql);							$sql_conta="SELECT * 			FROM produtos p, produtos_categorias pc			WHERE p.id_produto = pc.id_produto			AND p.nome LIKE '%$_REQUEST[busca]%'			AND pc.id_categoria =$_REQUEST[cat]";				$query_conta=mysql_query($sql_conta);				$linha=mysql_num_rows($query);				$linha1=mysql_num_rows($query_conta);							}	//verifico se nenhum produto foi encontrado	if($linha==0) {				print "<table width=60% border=0><center>				<tr><td colspan=2 width=100% height=3 background=\"images/fundo_pontilhado.gif\"></td></tr>				<tr><td colspan=2 width=100% height=3 background=\"images/fundo_pontilhado.gif\"></td></tr>				<em><font class=\"menutopo\"><em><center><b>Nenhum produto foi encontrado, tente buscar novamente</b></em></font></td></tr>				";				}					 else //se ha produto, mostro eles	 	 {	print"<td colspan=2 width=100% height=3><center><font class=\"not1\"><b>Foram encontrados $linha1 produtos </b></font></td>";	print "<br>";	include "paginacao.php";//fim da paginacao//bla bla bla

 

paginacao.php

<?//paginacao da busca	//fim da tabela//contagem das linhas$total=$linha1;//setando anterior e proxima$anterior=$pg-1;$proxima=$pg+1;//setando pagina$pgs=ceil($total/$registros);if ($pg>1) {echo '<center><font class=not1><a href="?cat='.$cat.'&busca='.$busca.'&procurar=sim&pg='.$anterior.'"><strong>Anterior</strong></a></font>';} else {echo '<center><font class=not1><strong>Anterior</strong></font>';}for ($num=1;$num<=$pgs;$num++) {if ($pg==$num) {echo ' <font class=not1><b>['.$num.']</b></font> ';} else {echo '<font class=not1><a href="?cat='.$cat.'&busca='.$busca.'&procurar=sim&pg='.$num.'"> '.$num.'</a></font>';}}if ($pg<$pgs) {echo '<font class=not1> <a href="?cat='.$cat.'&busca='.$busca.'&procurar=sim&pg='.$proxima.'"><strong>Próxima</strong></a>';} else {echo ' <strong><font class=not1>Próxima</font></strong>';};switch ($total){case 0:print "";break;default:}?>

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.