Ir para conteúdo

POWERED BY:

Arquivado

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

thiagosvl

Limitar posts na chamada/pagina PHP

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>";	
						
	}
					
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
"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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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);

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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());

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

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.