Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
O código a seguir chama os posts do Banco de Dados por ID, e tudo funciona perfeitamente.
Porém, se meu BD conter 50 posts, a pagina .php chamará os 50, então minha ideia é a seguinte: Quando houver uma certa quantidade de posts (ex:10), aparecer aquele link de PAGINA 1, PAGINA 2.
<?php
$strSQL = "SELECT * FROM ponto_posts WHERE grupo_id = 'posts' ";
$rs = mysqli_query($conecta,$strSQL);
$error = mysqli_error($conecta);
if(!$error){
while($row = mysqli_fetch_array($rs)) {
echo '<div id="posts"><div id="titulo-pontos">'.$row['posts'].'</div>';
echo '<div id="play-pst">'.$row['play-pst'].'</div>';
echo '<div id="download-post">'.$row['download'].'</div>';
echo '<div id="ponto-post">'.$row['post'].'</div>' . "</div>";}
}else{
echo $error;
}
?>
Conto com vocês,
Obrigado, Thiago.
É só fazer paginação http://www.devmedia.com.br/paginacao-em-php/21972
Obrigado!
Eu observei o código, mas não consegui mesclar com o meu código..
Pode me dar alguns toques?
Cada pagina do meu site tras um grupo_id, então terei de fazer uma paginação pra cada uma?
Não. Em uma página só você lista e limita os dados por página.
Acontece que em um MENU há varios links, e cada link vai pra uma pagina, em seguida, essa página chama os posts por seu grupo_id.
Acredito que o certo seria uma unica pagina buscar diretamente seu grupo_id, não é? assim eu só faria a paginação uma unica vez.
Antes da consulta, coloque isso:
$limite_paginacao = 10;
$sql_contagem = mysql_query("SELECT * FROM ponto_posts WHERE grupo_id = 'posts'");
$sql_resultado = ceil(mysql_result($sql_contagem, 0) / $limite_paginacao);
$pg = (isset($_GET["pg"])) ? (int)$_GET["pg"] : 1 ;
$start = ($pg - 1) * $limite_paginacao;
Sua consulta, altere pra isso:
$strSQL = "SELECT * FROM ponto_posts WHERE grupo_id = 'posts' ORDER BY grupo_id ASC LIMIT $start, $limite_paginacao";
E no final da página coloque isso:
if($sql_resultado > 1 && $pg<=$sql_resultado) {
for($i=1; $i<=$sql_resultado; $i++) {
echo "<a href='?pg=$i'>$i</a>";
}
}Sasuke Uchiha, irei introduzir o código sugerido em minha página e em pouco tempo voltarei com o resultado.
Obrigado pela atenção, estou agoniado com isso..
Tenho um outro problema que também está me deixando maluco, pode ajudar-me?
http://forum.imasters.com.br/topic/540759-audio-em-site-com-mp3-do-4shared/
>
Antes da consulta, coloque isso:
$limite_paginacao = 10;
$sql_contagem = mysql_query("SELECT * FROM ponto_posts WHERE grupo_id = 'posts'");
$sql_resultado = ceil(mysql_result($sql_contagem, 0) / $limite_paginacao);
$pg = (isset($_GET["pg"])) ? (int)$_GET["pg"] : 1 ;
$start = ($pg - 1) * $limite_paginacao;
O resultado: Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\t\pontos.php on line 18
linha 18: $sql_resultado = ceil(mysql_result($sql_contagem, 0) / $limite_paginacao);
>
>
Antes da consulta, coloque isso:
$limite_paginacao = 10;
$sql_contagem = mysql_query("SELECT * FROM ponto_posts WHERE grupo_id = 'posts'");
$sql_resultado = ceil(mysql_result($sql_contagem, 0) / $limite_paginacao);
$pg = (isset($_GET["pg"])) ? (int)$_GET["pg"] : 1 ;
$start = ($pg - 1) * $limite_paginacao;
O resultado: Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\wamp\www\t\pontos.php on line 18
linha 18: $sql_resultado = ceil(mysql_result($sql_contagem, 0) / $limite_paginacao);
"SELECT * FROM ponto_posts WHERE grupo_id = 'posts'"
Essa linha está esta certo?
Mude a linha 18 para:
$sql_contagem = mysql_query("SELECT * FROM ponto_posts WHERE grupo_id = 'posts'") or die (mysql_error());
E cole novamente o erro.
>
"SELECT * FROM ponto_posts WHERE grupo_id = 'posts'"
Essa linha está esta certo?
Sim, está tudo correto.
Abaixo segue o código que alterei, provavelmente devo ter invertido algo:
<?php
$limite_paginacao = 10;
$sql_contagem = mysqli_query($conecta, "SELECT * FROM pontos_posts WHERE grupo_id = 'posts'") or die (mysql_error());
$sql_resultado = ceil(mysqli_result($sql_contagem, 0) / $limite_paginacao);
$pg = (isset($_GET["pg"])) ? (int)$_GET["pg"] : 1 ;
$start = ($pg - 1) * $limite_paginacao;
$strSQL = "SELECT * FROM pontos_posts WHERE grupo_id = 'posts' ";
$rs = mysqli_query($conecta,$strSQL);
$strSQL = "SELECT * FROM pontos_posts WHERE grupo_id = 'posts' ORDER BY grupo_id ASC LIMIT $start, $limite_paginacao";
$error = mysqli_error($conecta);
if(!$error){
while($row = mysqli_fetch_array($rs)) {
echo '<div id="pontos"><div id="titulo-pontos">'.$row['titulo'].'</div>';
echo '<div id="play-pontos">'.$row['play'].'</div>';
echo '<div id="download-pontos">'.$row['download'].'</div>';
echo '<div id="ponto-pontos">'.$row['ponto'].'</div>' . "</div>";}
}else{
echo $error;
}
if($sql_resultado > 1 && $pg<=$sql_resultado) {
for($i=1; $i<=$sql_resultado; $i++) {
echo "<a href='?pg=$i'>$i</a>";
}
}
?>
Essa codigo todo funciona depois de eu abrir a página pontos_---.php.
Tem como eu fazer com o que o meu menu avalie e filtre, para depois carregar e exibir apenas o grupo_id?
Pelo que li, parece que é algo envolvido com $get, mas estou totalmente por fora do assunto.
Troque essas linhas todas:
$strSQL = "SELECT * FROM pontos_posts WHERE grupo_id = 'posts' ";
$rs = mysqli_query($conecta,$strSQL);
$strSQL = "SELECT * FROM pontos_posts WHERE grupo_id = 'posts' ORDER BY grupo_id ASC LIMIT $start, $limite_paginacao";
Por isso:
$strSQL = "SELECT * FROM pontos_posts WHERE grupo_id = 'posts' ORDER BY grupo_id ASC LIMIT $start, $limite_paginacao";
$rs = mysqli_query($conecta,$strSQL);>
Troque essas linhas todas:
$strSQL = "SELECT * FROM pontos_posts WHERE grupo_id = 'posts' ";
$rs = mysqli_query($conecta,$strSQL);
$strSQL = "SELECT * FROM pontos_posts WHERE grupo_id = 'posts' ORDER BY grupo_id ASC LIMIT $start, $limite_paginacao";
Por isso:
$strSQL = "SELECT * FROM pontos_posts WHERE grupo_id = 'posts' ORDER BY grupo_id ASC LIMIT $start, $limite_paginacao";
$rs = mysqli_query($conecta,$strSQL);
Desculpe-me pelo incomodo, realmente está difícil..
Desta vez o erro exibido é:
Fatal error: Call to undefined function mysqli_result() in C:\wamp\www\terreiro\pontos.php on line19
Linha 19: $sql_resultado = ceil(mysqli_result($sql_contagem, 0) / $limite_paginacao) or die (mysql_error());Sem problemas, hehehe, aprendi a programar em foruns assim como você....
Referente a essa linha 19, você tenta mudar para:
$sql_resultado = ceil(mysqli_result($sql_contagem, 0, 'grupo_id') / $limite_paginacao) or die (mysql_error());
Não garanto que vai funcionar, não manjo dessa função... mas pode ser que funcione.
Se alguém que manje mais estiver lendo e puder ajudar!!!
Alterei mysql_result por mysql_num_rows e funcionou, agora está tudo certinho!
Obrigado pela ajuda, mas agora tenho uma outra dúvida..
Gostaria de sua ajuda, e se for possível, tem algum meio de entrar em contato? são coisas simples em PHP.
É só fazer paginação http://www.devmedia.com.br/paginacao-em-php/21972