Jump to content


Photo

Como Selecionar Apenas 10 Comentarios Por Vez Em Uma Noticia


  • Faça o login para participar
10 replies to this topic

#1 joppert

joppert

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 16/09/2009, 11:55

Boa tarde galera,

tenho um website de games que estou a desenvolver pra um amigo, e ele deseja um sistema de comentarios em suas noticias.. até aew tudo bem :D

MAS,

eu coloquei pra mostrar apenas as 10 ultimas noticias só que eu quiria que ao clicar em um link mostrasse as noticias seguintes, semelhante ao sistemas de comentarios do forum :P


obs*

uso o MSSQL como database




- VLW :D

#2 digo

digo

    24 Horas

  • Usuários
  • 435 posts
  • Sexo:Masculino

Posted 16/09/2009, 12:20

Procura por Paginação

[]'s

#3 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 16/09/2009, 13:43

Na query você deve colocar ORDER BY campo_id e também um TOP 10.

Alguma coisa assim :
[codebox]SELECT TOP 10 ID, NAME FROM COMENTS ORDER BY ID DESC;[/codebox]

Já faz algum tempo que não uso MSSQL então não tenho certeza.

Teste ai e depois poste o resultado para o pessoal do fórum!

Abraços
Mateus
Mateus Antunes
MBASistemas

#4 joppert

joppert

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 16/09/2009, 14:35

Paginação ? hmm vou pesquisar, mais to com net discada em casa por isso recorri a um forum pra conseguir mais rapidamente :T

#MBA,

assim eu estaria selecionando somente os 10 ultimos comentarios, por parte esta certo mais eu quiria que o restante tbm fosse exibido.. u
m exemplo é o sistema da Google quando voce faz uma pesquisa mostra 10 resultados em uma pagina na outra mais 10 e assim por diante, e isso que eu quero no meu site, me falaram pra usar o comando "limit" mais da erro :T

obs* no pc que tem net não tenho dw nem nada do genero por isso quiria o codigo ja meio mastigadinho :P

#5 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 16/09/2009, 15:17

Vamos lá:
Se não me engano você tem de usar o TOP mesmo.
É como eu disse... Tem algum tempo que não trabalho com MS.

A select você deve colocar o top para definir o número de registros por página e chamaremos de <registros>.
Feito isso você deve pegar do link em qual página o usuário está e chamaremos de <página>.
Chamaremos de <offset> : (<página> - 1) * <registros>.

Assim sendo você deve fazer um top <registros> e um where not in (SELECT TOP <offset>).

Entendeu a lógica?
Qualquer coisa é só voltar a postar.

Abraços
Mateus
Mateus Antunes
MBASistemas

#6 l3on4rdo

l3on4rdo

    O Mestre dos Mestres

  • Usuários
  • 159 posts
  • Sexo:Não informado
  • Localidade:São Carlos - SP

Posted 17/09/2009, 09:21

se vc quiser ver 10 por pagina realmente tem q usar paginação.
Aqui no forum tem varios tuts desses...

Já para retornar os 10 ultimos ou crie uma coluna tempo no BD ou faça ordem por id msm, do maior pro menor (DESC).

Abraços
Buscando um convite do TorrentLeech ! Se tiver um, me mande uma MP ! Ratio > 1 garantida !

#7 joppert

joppert

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 17/09/2009, 16:43

Valeu gente, :D oque procurava era msmo pagianação :P

#8 Fábio Web Arts

Fábio Web Arts

    Web IN Arts

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:No Saco De Magé
  • Interesses:Tudo que for da área de Informática

Posted 17/09/2009, 17:34

uma query boba:

[codebox]
select * from comentarios order by id limit 10
[/codebox]

um sistema de enquete dinamica que eu fiz:
se baseia nele para fazer paginacao:

[codebox]
include "conecta_mysql_enquete.php";
$_BS['PorPagina'] = 10;


$sql_pergunta = "SELECT * FROM pergunta";
$sql_lojas = "SELECT * FROM lojas";
$sql_respostas = "select * from respostas";

$result = mysql_query($sql_pergunta);
$result2 = mysql_query($sql_lojas);
$result3 = mysql_query($sql_respostas);
$teste = mysql_num_rows($result);

//$total = mysql_result($result3, 0, 'id');
$total = mysql_num_rows($result3);

$paginas = (($total % $_BS['PorPagina']) > 0) ? (int)($total / $_BS['PorPagina']) + 1 : ($total / $_BS['PorPagina']);

if (isset($_GET['pagina'])) {
$pagina = (int)$_GET['pagina'];
} else {
$pagina = 1;
}
$pagina = max(min($paginas, $pagina), 1);
$inicio = ($pagina - 1) * $_BS['PorPagina'];

$sql = "SELECT * FROM `respostas` ORDER BY `id` DESC LIMIT ".$inicio.", ".$_BS['PorPagina'];

$query = mysql_query($sql);


if($teste >= 1){
?>
<form action="env_form.php" method="post">
<br>
<table width="323" height="24" border="0" align="center">
<tr>
<?
while($dados = mysql_fetch_array($result))
{?>
<td width="317" height="20"><input name="pergunta" id="pergunta" type="hidden" value="<?php echo $dados['id']; ?>" />
<?
echo "<strong>PERGUNTA: </strong>".$dados['pergunta']."";
}

?></td>
</tr>
</table>
<hr>
<table width="395" border="0" align="center">
<tr>
<td width="92">&nbsp;</td>
<td width="287"><strong><a href="java script:void()"onclick="showHide('responda');" style="cursor: pointer;">CLIQUE AQUI PARA RESPONDER!</a></strong></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<div id=responda style="display: none">
<table width="395" border="0" align="center">
<tr>
<td><strong>Nome:</strong></td>
<td><input type="text" name="nome" id="nome" /></td>
</tr>
<tr>
<td height="23"><strong>Loja:</strong></td>
<td><select name="loja" id="loja">

<?
while($dados = mysql_fetch_array($result2))
{
echo "<option value='".$dados['desc_lojas']."'>".$dados['desc_lojas']."</option>";
}

?>
</select>
</td>
</tr>
<tr>
<td><strong>Resposta:</strong></td>
<td><textarea name="resposta" id="resposta" cols="45" rows="5"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="button" id="button" value="Enviar Resposta" /></td>
</tr>
</table>
</form>
<hr>
</div>


<?
}
else
{
echo '<table width="60%" border="1" align="center">';
echo '<tr><td bgcolor="#FF0000"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="4">ATEN&Ccedil;&Atilde;O!</font></strong></font></div></td></tr>';
echo '<tr><td><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>Nenhuma enquete ativa!</strong></font></td></tr>';
echo '<tr><td><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><a href="index.php"><strong>Ir para Pagina de Login</strong></a></font></td></tr>';
echo '</table>';
}
?>
<?
while($dados = mysql_fetch_array($query))
{

?>
<table width="395" border="0" align="center">
<tr>
<td width="68">&nbsp;</td>
<td width="317">&nbsp;</td>
</tr>
<tr>
<td><strong>Nome:</strong></td>
<td><? echo $dados['autor']; ?></td>
</tr>
<tr>
<td height="23"><strong>Loja:</strong></td>
<td><? echo $dados['loja']; ?>
</td>
</tr>
<tr>
<td><strong>Resposta:</strong></td>
<td><? echo $dados['respostas']; ?></td>
</tr>
</table><hr>
<?
}
$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 = "<input class=\"style2\" onclick=\"java script:window.location='$PHP_SELF?pagina=".$prev."'\" type=\"button\" value=\"Anterior\" name=\"btnAnterior1\">";
}else{
$prev_link = "<input class=\"style2\" type=\"button\" value=\"Anterior\" disabled>";
}

if ($paginas > $pagina) {
$next_link = "<input class=\"style2\" onclick=\"java script:window.location='$PHP_SELF?pagina=".$next."'\" type=\"button\" value=\"Pr&oacute;ximo\" name=\"btnAnterior1\">";
}else{
$next_link = "<input class=\"style2\" type=\"button\" value=\"Pr&oacute;ximo\" disabled>";
}



$painel = "";
for($x = 1; $x <= $paginas; $x++) {
$di = $pagina == $x ? 'disabled' : NULL;
$painel .= "<input class=\"style2\" ".$di." onclick=\"java script:window.location='$PHP_SELF?pagina=". $x ."';\" type=\"button\" value=\"".$x."\">&nbsp;";
}
echo "<p align=center>$prev_link $painel $next_link</p>";
?>
[/codebox]

Edição feita por: Fábio Web Arts, 17/09/2009, 17:37.


#9 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 17/09/2009, 21:38

@Fábio:
Vamos dar uma lida?
Ele quer em MSSQL, e não MySQL.


@joppert
Alguns links úteis:
http://forum.imaster...sql-sql-server/
http://onnclick.net/blog/?p=64
http://www.htmlstaff...er.php?id=22928

Até mais ^_^

Edição feita por: Dudu, 17/09/2009, 21:39.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#10 Fábio Web Arts

Fábio Web Arts

    Web IN Arts

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:No Saco De Magé
  • Interesses:Tudo que for da área de Informática

Posted 18/09/2009, 17:52

a desculpa eu nao sabia que mssql era diferente que mysql

#11 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 18/09/2009, 18:31

MSSQL é o SQL Server Fábio, utilizado em L2OFF =)

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq