Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Paginação de resultados - mostrar registros de um usuário

01-04-2009 19:21

Salve, Galera! O código abaixo é o do link http://www.codigosnaweb.com/forum/viewt ... 911&p=2104, com alterações na exibição dos dados, cujo funcionamento é correto:

Eu gostaria de exibir os resultados referentes a usuário determinado. Fiz algumas alterações que não sei se estão corretas, mas que exibem os resultados referentes a um usuário determinado. Se coloco todos os registros a serem exibidos numa única página, todos os registros são exibidos. Porém, se, por exemplo, tenho 4 registros, e coloco a exibição de dois registros por página, são exibidos os dois registros referentes à primeira página e é exibido o link para a próxima página. Se clico no link referente à próxima página, aparece uma página em branco, mesmo existindo registros a serem exibidos. Abaixo, está o código com a alteração para se exibirem registros por usuário:

<?php $qt = "select * from zre2_anunciantesbannerfixolateraldireita where codigo_clienteID = '$_GET[id]'  "; $rt = mysql_query($qt) or die(mysql_error()); while($at = mysql_fetch_array($rt)) { $resultado_pagina="5"; // resultados por página $tabela="zre2_listingsbannerfixolateraldireitaaeromodelo"; // tabela do bd $sql=mysql_query("SELECT * FROM $tabela where codigo_clienteID = $at[codigo_clienteID] "); //$sql=mysql_query("SELECT * FROM $tabela"); $total=mysql_num_rows($sql); if($pagina=="") { $pagina="1"; } $maximo=$resultado_pagina; $inicio=$pagina-1; $inicio=$maximo*$inicio; $query=mysql_query("SELECT * FROM $tabela where codigo_clienteID = '$_GET[id]' LIMIT $inicio,$maximo"); //$query=mysql_query("SELECT * FROM $tabela LIMIT $inicio,$maximo"); while($dados=mysql_fetch_array($query)) { //extract($dados); //echo "$username"; echo "Código do anúncio: $dados[ListingbannerfixolateraldireitaaeromodeloID]<br>"; echo "Código do cliente: $dados[codigo_clienteID]<br>"; echo "Código do pedido: $dados[CodigopedidobannerfixolateraldireitaID]<br><br>"; } ?> <?php $menos=$pagina-1; $mais=$pagina+1; $p_ini=$mais-1; $p_ini=$maximo*$p_ini; $p_query=mysql_query("SELECT * FROM $tabela LIMIT $p_ini,$maximo"); $p_total=mysql_num_rows($p_query); echo "<center>"; if($menos>0) { echo "<a href=\"?pagina=$menos\">:: anterior(es)</a> "; } else { echo ":: anterior(es)"; } echo " - Página atual: (<b> $pagina </b>) - "; $paginar = $total/$maximo; if($paginar>$pagina) { echo  "<a href=\"?pagina=$mais\">próxima(s) ::</a>"; } else { echo "próxima(s) ::"; } echo "</center>"; } ?>


<div align=right> Estamos com <b><?php echo $total; ?></b> entrada(s). <br> mostrando <b><?php echo $maximo; ?></b> entrada(s) por página. <br> mostrando <b><?php echo $paginar; ?></b> página(s). </div>

O campo comum entre as tabelas é codigo_clienteID. O que há de errado?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Paginação de resultados - mostrar registros de um usuário

01-04-2009 20:13

O script do link estava com um erro, não estava pegando o valor da próxima página, pode copiar novamente que já está OK.

Quanto ao seu problema, você deve adicionar o WHERE em todas as consultas. Note que você deixou algumas consultas sem o WHERE.

No mais é só testar com o valor passado e ao invés de

codigo_clienteID = '$_GET[id]'

Usa

codigo_clienteID = '".$_GET['id']."'
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Paginação de resultados - mostrar registros de um usuário

01-04-2009 21:03

Vou testar. Mas sem as minhas alterações o seu código estava exibindo a próxima página corretamente. Passou a não exibir com as minhas alterações. Observeção: se o título não pode ser em caps lock, por que o mesmo não se dá com a repreensão?
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Paginação de resultados - mostrar registros de um usuário

01-04-2009 21:26

Pensei que a repreensão estivesse no lugar do título. Desculpe pela observação. Não funfou. Fiz as alterações que você disse, mas não foram exibidos os resultados da segunda página. Apareceram, na segunda página, apenas as observações dentro das div's, mas sem números correspondentes. Eis o código alterado:

<?php require_once("configuracao_mysql.php"); $qt = "select * from zre2_anunciantesbannerfixolateraldireita where codigo_clienteID = '".$_GET['id']."'  "; $rt = mysql_query($qt) or die(mysql_error()); while($at = mysql_fetch_array($rt)) { $resultado_pagina="2"; // resultados por página $tabela="zre2_listingsbannerfixolateraldireitaaeromodelo"; // tabela do bd $sql=mysql_query("SELECT * FROM $tabela where codigo_clienteID = $at[codigo_clienteID]"); $total=mysql_num_rows($sql); if($_GET['pagina']=="") { $pagina="1"; } else { $pagina = $_GET['pagina']; } $maximo=$resultado_pagina; $inicio=$pagina-1; $inicio=$maximo*$inicio; $query=mysql_query("SELECT * FROM $tabela where codigo_clienteID = $at[codigo_clienteID] LIMIT $inicio,$maximo"); while($dados=mysql_fetch_array($query)) { echo "Código do anúncio: $dados[ListingbannerfixolateraldireitaaeromodeloID]<br>"; echo "Código do cliente: $dados[codigo_clienteID]<br>"; echo "Código do pedido: $dados[CodigopedidobannerfixolateraldireitaID]<br><br>"; //extract($dados); //echo "$codigo<br>"; } ?> <?php $menos=$pagina-1; $mais=$pagina+1; $p_ini=$mais-1; $p_ini=$maximo*$p_ini; $p_query=mysql_query("SELECT * FROM $tabela where codigo_clienteID = $at[codigo_clienteID] LIMIT $p_ini,$maximo"); $p_total=mysql_num_rows($p_query); echo "<center>"; if($menos>0) { echo "<a href=\"?pagina=$menos\">:: anterior(es)</a> "; } else { echo ":: anterior(es)"; } echo " - Página atual: (<b> $pagina </b>) - "; $paginar = $total/$maximo; if($paginar>$pagina) { echo  "<a href=\"?pagina=$mais\">próxima(s) ::</a>"; } else { echo "próxima(s) ::"; } echo "</center>"; } ?> <div align=right> Estamos com <b><?php echo $total; ?></b> entrada(s). <br> mostrando <b><?php echo $maximo; ?></b> entrada(s) por página. <br> mostrando <b><?php echo $paginar; ?></b> página(s). </div>

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Paginação de resultados - mostrar registros de um usuário

01-04-2009 21:45

Observa ai que só no primeiro select você pega o valor pelo link

Outra observação é que os valores no WHERE tem que estar entre aspas e não solto 'valor aqui'

Agora quanto ao problema da passagem de valor, você tem que observar que quando você passa para a segunda página, o while não pega o valor que foi passado na primeiro, por isso uma solução é você passar o valor do id junto com o link da paginação, por exemplo, no primeiro SELECT eu tenho:

SELECT * FROM $tabela

Esse SELECT é o da primeira página, ai como você pega o valor do link, pode fazer o seguinte:

$sql=mysql_query("SELECT * FROM $tabela WHERE codigo_clienteID='".$_['id']."'"); 

Com isso a primeira página vai vir OK, sendo que todos os outros SELECTS vão ter que está com o mesmo WHERE, só que seu link próximo e anterior não manda id nenhum, por isso não há resultado. Ai entra a necessidade de fazer o seguinte:

echo "<a href=\"?pagina=$menos\">:: anterior(es)</a> "; por echo "<a href=\"?pagina=$menos&id=".$_GET['id']."\">:: anterior(es)</a> "; 

e

echo  "<a href=\"?pagina=$mais\">próxima(s) ::</a>"; por echo  "<a href=\"?pagina=$mais&id=".$_GET['id']."\">próxima(s) ::</a>"; 

Veja se resolve.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Paginação de resultados - mostrar registros de um usuário

01-04-2009 22:08

Eu mantenho isto aqui?

$qt = "select * from zre2_anunciantesbannerfixolateraldireita where codigo_clienteID = '".$_GET['id']."'  "; $rt = mysql_query($qt) or die(mysql_error()); while($at = mysql_fetch_array($rt)) { 

Eu estou fechando o while depois do último echo. O select abaixo, que você referiu como primeiro, é o primeiro depois do while?

$sql=mysql_query("SELECT * FROM $tabela WHERE codigo_clienteID='".$_['id']."'"); 

Este código acima é o seu exemplo.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Paginação de resultados - mostrar registros de um usuário

01-04-2009 22:12

Com base no script original TODOS os SELECTS vão ter o WHERE "adicionado" com a condição comparada com o id via GET

WHERE codigo_clienteID='".$_['id']."'

Isso porque tanto na primeira página quanto nas outras o id é necessário para gerar a paginação.

Quanto a fechamento de WHILE basta seguir o exemplo do link.

Se possível trocar o * por cada campo a ser usado na consulta, isso reduz o tempo da consulta.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Paginação de resultados - mostrar registros de um usuário

01-04-2009 22:17

Cara, funfou! Voltei atrás no código, mantive as alterações que fiz em face de seu código, e alterei os links das páginas conforme você referiu. O problema estava nesses links. Essa troca bastava:

echo "<a href=\"?pagina=$menos\">:: anterior(es)</a> "; por echo "<a href=\"?pagina=$menos&id=".$_GET['id']."\">:: anterior(es)</a> "; // e echo "<a href=\"?pagina=$mais\">próxima(s) ::</a>"; por echo "<a href=\"?pagina=$mais&id=".$_GET['id']."\">próxima(s) ::</a>";

Segue o código funcionando:

<?php $qt = "select * from zre2_anunciantesbannerfixolateraldireita where codigo_clienteID = '".$_GET['id']."'  "; $rt = mysql_query($qt) or die(mysql_error()); while($at = mysql_fetch_array($rt)) { $resultado_pagina="2"; // resultados por página $tabela="zre2_listingsbannerfixolateraldireitaaeromodelo"; // tabela do bd $sql=mysql_query("SELECT * FROM $tabela where codigo_clienteID = '$at[codigo_clienteID]' "); $total=mysql_num_rows($sql); if($pagina=="") { $pagina="1"; } $maximo=$resultado_pagina; $inicio=$pagina-1; $inicio=$maximo*$inicio; $query=mysql_query("SELECT * FROM $tabela where codigo_clienteID = '$at[codigo_clienteID]' LIMIT $inicio,$maximo"); //$query=mysql_query("SELECT * FROM $tabela LIMIT $inicio,$maximo"); while($dados=mysql_fetch_array($query)) { //extract($dados); //echo "$username"; echo "Código do anúncio: $dados[ListingbannerfixolateraldireitaaeromodeloID]<br>"; echo "Código do cliente: $dados[codigo_clienteID]<br>"; echo "Código do pedido: $dados[CodigopedidobannerfixolateraldireitaID]<br><br>"; } $menos=$pagina-1; $mais=$pagina+1; $p_ini=$mais-1; $p_ini=$maximo*$p_ini; $p_query=mysql_query("SELECT * FROM $tabela where codigo_clienteID = '$at[codigo_clienteID]' LIMIT  $p_ini,$maximo"); $p_total=mysql_num_rows($p_query); echo "<center>"; if($menos>0) { echo "<a href=\"?pagina=$menos&id=".$_GET['id']."\">:: anterior(es)</a> "; //echo "<a href=\"?pagina=$menos\">:: anterior(es)</a> "; } else { echo ":: anterior(es)"; } echo " - Página atual: (<b> $pagina </b>) - "; $paginar = $total/$maximo; if($paginar>$pagina) { echo "<a href=\"?pagina=$mais&id=".$_GET['id']."\">próxima(s) ::</a>"; //echo  "<a href=\"?pagina=$mais\">próxima(s) ::</a>"; } else { echo "próxima(s) ::"; } echo "</center>"; } ?> <div align=right> Estamos com <b><?php echo $total; ?></b> entrada(s). <br> mostrando <b><?php echo $maximo; ?></b> entrada(s) por página. <br> mostrando <b><?php echo $paginar; ?></b> página(s). </div>


Só mais uma coisa: tem como aparecerem os links com o número de cada página?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Paginação de resultados - mostrar registros de um usuário

01-04-2009 22:19

Tem outra paginação para isso, busca por: paginação google
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Paginação de resultados - mostrar registros de um usuário

01-04-2009 22:25

Se for aquela paginação de links, vai fugir. Esse código que vimos é o mais próximo do que eu estou mexendo. Vou tentar adaptar a sua correção quanto aos links num outro código que tenho. Se der certo, posto o código. Se não der, peço ajuda. Obrigado.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17548
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Paginação de resultados - mostrar registros de um usuário

01-04-2009 22:26

blz :smile
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Paginação de resultados - mostrar registros de um usuário

01-04-2009 22:54

E deu certo. O código era o que nele eu estava trabalhando. Corrigi os links da paginação, e está funcionando. Troquei as palavras "anterior" e "próxima" por "<<" e ">>". Entre esses elementos aparecem os números das páginas com os links. Pode-se trocar $Buscador .= " "; por echo " "; (daí deve-se excluir isto: <?=$Buscador?>, colocado depois do fechamento da tag php). Eis o código:

<?php //Conexão com o banco: require_once("../../ver_anuncios/busca/configuracao_mysql.php"); require_once("../../arquivo_estilos/arquivo_estilos.php"); require_once("../../javascript/javascript.php"); $qt = "select * from zre2_anunciantesbannerfixolateraldireita where codigo_clienteID = '$_GET[id]'  "; $rt = mysql_query($qt) or die(mysql_error()); while($at = mysql_fetch_array($rt)) { $q1 = "select * FROM zre2_listingsbannerfixolateraldireitaaeromodelo where codigo_clienteID = $at[codigo_clienteID]"; $Buscador .= "<body marginwidth=\"5\" marginheight=\"5\" topmargin=\"5\" bottommargin=\"5\" leftmargin=\"5\" rightmargin=\"5\">"; $total_reg = "2"; if(isset($_GET['pg'])) {     $pagina = $_GET['pg']; } if (!$pagina) {      $pc = "1";  } else {      $pc = $pagina;  }  $inicio = $pc - 1;  $inicio = $inicio * $total_reg;  $limite = mysql_query("$q1 LIMIT $inicio,$total_reg");  $todos = mysql_query("$q1");  $tr = mysql_num_rows($todos);  $tp = $tr / $total_reg; $datasize = count($dados); $bufferX = 0; $bufferY = 0; while($a1 = mysql_fetch_array($limite)) {          $bufferX++;          if($bufferX == 0) {         $Buscador .= "table width=\"468\" align=\"center\" cellspacing=0 cellpadding=0 border=0<tr><td>";     } else {         $Buscador .= "<td>";     } //nome de anunciante $q2 = "select * from zre2_anunciantesbannerfixolateraldireita where codigo_clienteID = '$a1[codigo_clienteID]' "; $r2 = mysql_query($q2) or die(mysql_error()); $a2 = mysql_fetch_array($r2);      $NomeAnunciante = $a2[FirstName]; $CodigoAnunciante = $a2[AnunciantebannerfixolateraldireitaID];             $Buscador .= " <table width=\"468\" align=\"center\" cellspacing=0 cellpadding=0 border=0><tr><td align=\"center\" height=\"30\" class=BordaFonteAdmin width=\"100%\" valign=middle>AN&Uacute;NCIO DE BANNER FIXO LATERAL DIREITA</td></tr></table> <table cellspacing=0 cellpadding=0 border=0><tr><td height=\"2\"></td></tr></table> <table width=\"468\" align=\"center\" cellspacing=0 cellpadding=0 border=0><tr><td align=\"center\" height=\"30\" class=InfoBoxContentsAdmin width=\"100%\" valign=middle>AEROMODELO</td></tr></table> <table cellspacing=0 cellpadding=0 border=0><tr><td height=\"2\"></td></tr></table> <table width=\"468\" align=\"center\" cellspacing=0 cellpadding=0 border=0><tr><td align=\"center\" height=\"30\" class=BordaFonteAdmin width=\"100%\" valign=middle>AN&Uacute;NCIOS <font class=TextOk>ATIVOS</font> DE <font style=\"text-transform:uppercase;\">$NomeAnunciante</font></td></tr></table> <table cellspacing=0 cellpadding=0 border=0><tr><td height=\"2\"></td></tr></table> <table width=\"468\" border=0 cellpadding=0 cellspacing=0 class=InfoBoxContentsAdmin align=center onmouseover=\"this.style.background='#ffffff'\" onmouseout=\"this.style.background='#d4d0c8'; this.style.cursor='hand'\" >";          if ($a1[BannerGif] != '')     {     $Buscador .= "<tr bgcolor=\"#d4d0c8\" onMouseover=\"this.style.background='#def8f7'\" onMouseout=\"this.style.background='#d4d0c8'\"><td align=\"center\"><img src=\"../../ver_anuncios/busca/banners_fixos_lateral_direita_aeromodelo/$a1[BannerGif]\" alt=\"$a1[BannerAlt]\" border=0></td></tr>";     } else {     if ($a1[BannerSwf] != '')     {     $Buscador .= "<tr bgcolor=\"#d4d0c8\" onMouseover=\"this.style.background='#def8f7'\" onMouseout=\"this.style.background='#d4d0c8'\"><td align=\"center\"><embed src=\"../../ver_anuncios/busca/banners_fixos_lateral_direita_aeromodelo/$a1[BannerSwf]\" wmode=\"transparent\" alt=\"$a1[BannerAlt]\" border=0 width=120 height=60></td></tr>";     }     }          $Buscador .= "     <tr bgcolor=\"#ffffff\" onMouseover=\"this.style.background='#def8f7'\" onMouseout=\"this.style.background='#ffffff'\"><td align=center height=\"30\">Banner c&oacute;digo:&nbsp;<a class=MenulinkGeral href=\"VerBannerFixoLateralDireitaAeromodeloBuscador_Admin.php?id=$a1[ListingbannerfixolateraldireitaaeromodeloID]\" target=\"_self\">$a1[ListingbannerfixolateraldireitaaeromodeloID]</a></td></tr>      <tr bgcolor=\"#d4d0c8\" onMouseover=\"this.style.background='#def8f7'\" onMouseout=\"this.style.background='#d4d0c8'\"><td align=center height=\"30\">Anunciante:&nbsp;<a class=MenulinkGeral align=\"center\" href=\"VerAnuncianteBannerFixoLateralDireitaAeromodeloBuscador_Admin.php?AnunciantebannerfixolateraldireitaID=$a2[AnunciantebannerfixolateraldireitaID]\" target=\"_self\"><font style=\"text-transform:uppercase;\">$NomeAnunciante</font>&nbsp;(c&oacute;digo:&nbsp;$CodigoAnunciante)</a></td></tr>"; //} $Buscador .= "</table>";          if($bufferX == 0) {         $Buscador .= "</td>";     } else {         $Buscador .= "</td></tr></table>         <table cellspacing=0 cellpadding=0 border=0><tr><td height=\"2\"></td></tr></table>";         $bufferX = 0;     } } $Buscador .= "<table width=\"468\" align=\"center\" cellspacing=0 cellpadding=0 border=0><tr>";        $Buscador .= "<td width=80 align=left valign=middle><table class=BordaBotao width=80 height=20 cellpadding=0 cellspacing=0 border=0><tr><td align=center valign=middle><a class=BotaoGeral href=javascript:window.history.go(-1)>VOLTAR</a></td></tr></table></td>"; $Buscador .= "<td width=\"302\"><table width=\"302\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr valign=\"middle\"><td height=\"20\" align=\"center\" valign=\"middle\">"; //inseri     #E por fim montamos os links da paginação     $tp = ceil($tp);     if($pc>1) {         $anterior = $pc - 1;         $Buscador .= "<a class=MenulinkGeral href=\"?pg=$anterior&id=".$_GET['id']."\"><<&nbsp;</a>";     }          for($i=$pc-5;$i<$pc;$i++) {         if($i<=0) {         }         else {             $Buscador .= "<a class=MenulinkGeral href=\"?pg=$i&id=".$_GET['id']."\">";             if($i=="$pc") {             $Buscador .= "$i&nbsp;</a>";                     }             else {             $Buscador .= "$i&nbsp;</a>";                                 }         }     }          for($i=$pc;$i<=$pc+3;$i++) {         if($i==$tp) {             $Buscador .= "<a class=MenulinkGeral href=\"?pg=$i&id=".$_GET['id']."\">";             if($i=="$pc") {             $Buscador .= "$i&nbsp;</a>";             }             else {                     $Buscador .= "$i&nbsp;</a>";             }             break;         }         else {             $Buscador .= "<a class=MenulinkGeral href=\"?pg=$i&id=".$_GET['id']."\">";             if($i=="$pc") {             $Buscador .= "$i&nbsp;</a>";             }             else {                 $Buscador .= "$i&nbsp;</a>";             }             if($i==$pc+5 && $tp>$pc+5) {                 $Buscador .= " ... <a class=MenulinkGeral href=\"?pg=$tp&id=".$_GET['id']."\">$tp</a>";             }         }     }     if($pc<$tp) {         $proxima = $pc + 1;         $Buscador .= "<a class=MenulinkGeral href=\"?pg=$proxima&id=".$_GET['id']."\">&nbsp;>></a>";     }     $Buscador .= "</td></tr></table></td>"; $Buscador .= "<td width=80></td>"; $Buscador .= "</tr></table><body>"; } //fecha primeiro while ?> <?=$Buscador?>

0

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado