Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal!
Pesquisei bastante no forum e na internet, porém não consegui realizar o que preciso.
Vejam se conseguem me dar uma luz para resolver.
1) preciso ao exibir no RECORDSET as noticias, mas não repetindo as DATAS;
2) preciso ao exibir agrupar as noticias sem repetição, mas mostrando todas as que pertecem a DATA acima;
2a) tipo: 14:08:1980 - exibir noticia 1, exibir noticia 2, exibir noticia 3 (que no caso, aí teria dentro do banco 3 datas para o dia 14:08:1980, mas somente mostrar 1 vez a data e as 3 noticias.
3) depois sucessivamente as demais, que daí faço com o WHILE.
Tentei usar distinct, mas também não achei o modo certo.
Alguma luz com exemplo, agradeço.
Obrigado.Não vou fazer o código todo, mas vou dar uma luz:
1º - Retorna o recodset ordenado pela data;
2º - Cria uma variável com uma data "estourada", ou seja, uma data que você sabe que nunca irá se repetir, por exemplo 01/01/1900
3º - Faz um loop +/- assim (desculpa se tiver muitos erros de sintaxe, faz tempo que não mexo com ASP classico, mas dá para entender)
<%
dim dataAtual = '1900-01-01'
while not dtRecord.EOF()
begin
reader = dtRecords.Read();
if(reader["dataDaNoticia"] <> dataAtual)
begin
if(dataAtual <> '1900-01-01')
begin
%>
<!--Fecha alguma estrutura que você possa ter aberto, por exemplo uma div, seilá, vai do que você precisa-->
%>
end
%>
<!--Cria alguma estrutura que você queira, por exemplo uma div, seilá, vai do que você precisa-->
<%= dataAtual %>
%>
end
%>
<!--Coloca os dados da noticia-->
%>Tipo preciso assim:
14:08:217
13:00hs - noticia 1
13:00hs - noticia 2
13:00hs - noticia 3
12:08:217
13:00hs - noticia 1
Digamos que em 14 08 ele tem 3 noticias, ele me mostra dentro da data 3 noticia, e no dia 13 08, ele mostra apenas uma, pois só foi postada uma neste dia....
Se der uma ajustada e corrigida a sintaxe do meu exemplo, dá para fazer isso
estou tentando, primeiro com SELECT distinct PEGAR todas as DATAS, não deixando passar as DATAS repetidas, depois dentro de um while, fazer mais um SELECT com WHERE da data do DISTINCT e assim buscar todos os registros que preciso, na respectiva DATA...
vou ver...
em breve retorno.>
1 hora atrás, marcelocardoso disse:
Tipo preciso assim:
14:08:217
13:00hs - noticia 1
13:00hs - noticia 2
13:00hs - noticia 3
12:08:217
13:00hs - noticia 1
Digamos que em 14 08 ele tem 3 noticias, ele me mostra dentro da data 3 noticia, e no dia 13 08, ele mostra apenas uma, pois só foi postada uma neste dia....
Então, se você não conseguiu fazer pelo DISTINCT, faz ela fazer uma consulta depois que você vê as datas...
Ex
SET RS = Server.CreateObject("ADODB.Recordset")
RS.open "SELECT * FROM NOTICIA WHERE ... seu codigo da data" 'Nessa consulta tu pega data
Do
If Not Rs.EOF Then
SET GGS = Server.CreateObject("ADODB.Recordset")
GGS.open "SELECT * FROM NOTICIA WHERE .... seu codigo da data" ' Nessa você manda ela imprimir as datas puxando a data da consulta anterior
GGS.Close()
SET GGS = Nothing
RS.movenext
END IF
Loop While not RS.eof
RS.Close()
SET RS = Nothing
Fiz isso em uma consulta que preciso imprimir os pedidos da data tal e listar todos eles (já que eu uso banco de dados access e infelizmente não consegui usar select distinct nele ), a desvantagem que se você não fechar as consultas depois sobrecarrega o banco pra caramba.
Não, no exemplo que eu fiz ele está esperando que venha tudo da notícia, os dados e a data.
Dentro do while existe o if que verifica se a data mudou, com isso ele imprime a data somente quando mudar a data, a data só precisa estar ordenada para que o mesmo dia esteja tudo "juntinho" hahaha
>
4 minutos atrás, Pita disse:
Não, no exemplo que eu fiz ele está esperando que venha tudo da notícia, os dados e a data.
Dentro do while existe o if que verifica se a data mudou, com isso ele imprime a data somente quando mudar a data, a data só precisa estar ordenada para que o mesmo dia esteja tudo "juntinho" hahaha
Acho que entendi, seria um tipo ORDER BY pela data?
Isso, aí o código deve ir comparando a data, quando mudar a data [if(reader["dataDaNoticia"] <> dataAtual)] ele entra no if e deve imprimir a data, caso não, ele não faz nada e só vai imprimindo os dados da notícia mesmo
ok
em seguida retorno...
grato até aqui...
tentei fazer assim, sem sucesso também...
<%
SET strRS = Server.CreateObject("ADODB.Recordset")
strRS.Open "SELECT DISTINCT vmares_data FROM vm_noticias", conexao, 3, 3
IF strRS.EOF THEN
response.write "Não existe registro para exibir"
ELSE
DO WHILE NOT strRS.EOF
response.write "<b>" & strRS("vmares_data") & "</b><br>"
SET strFinal = Server.CreateObject("ADODB.Recordset")
strFinal.Open "SELECT * FROM vm_noticias WHERE vmares_data = '"& strRS("vmares_data") &"'", conexao, 3, 3
DO WHILE NOT strFinal.EOF
response.write strFinal("vmares_hora") & " - | - " & strFinal("vmares_titulo")
strFinal.MoveNext
Loop
strRS.MoveNext
Loop
END IF
%>
nem assim, monta os dados no segundo DO WHILE, que no caso, eu PEGARIA com DISTINCT as datas num primeiro momento, em segundo, pelo WHERE do segundo SELECT buscava todas as noticias da data específica, do primeiro laço, mas não exibe...
oq posso estar errando..?Cara, faz +/- assim e desculpa pelos erros de sintaxe
<%
SET strRS = Server.CreateObject("ADODB.Recordset")
strRS.Open "SELECT DISTINCT * FROM vm_noticias", conexao, 3, 3
IF strRS.EOF THEN
response.write "Não existe registro para exibir"
ELSE
dim dataAtual = '1900-01-01'
DO WHILE NOT strRS.EOF
IF dataAtual <> strRS("vmares_data")
response.write "<b>" & strRS("vmares_data") & "</b><br>"
dataAtual = strRS("vmares_data")
ENDIF
response.write strRS("vmares_hora") & " - | - " & strRS("vmares_titulo") & "<br>"
strRS.MoveNext
LOOP
END IF
%>colegas, que me ajudaram...
consegui realizar assim:
CODE:
<!-- CODE | noticias -->
<section id="noticias" class="secao_altura100">
<div class="secao_conteudo">
<%
IF Request.QueryString("noticia") = "" THEN
%>
<div class="row slideanim">
<div class="col-md-12 text-center" style="padding-bottom: 40px;">
<h1 class="extragrande"><b>Notícias Verdes Mares</b></h1>
<h1>Atualizações e informativos do meio contábil!</h1>
</div>
</div>
<%
SET strRS = Server.CreateObject("ADODB.Recordset")
strRS.Open "SELECT DISTINCT * FROM vm_noticias", conexao, 3, 3
IF strRS.EOF THEN
%>
<div class="row">
<div class="col-md-12" style="font-size: 25px;">AVISO!</div>
<div class="col-md-12">
<div class="col-md-12" style="padding-bottom: 5px;">
<h6>Não existem noticias cadastradas no momento.</h6>
</div>
</div>
</div>
<%
ELSE
dataAtual = "1900-01-01"
DO WHILE NOT strRS.EOF
IF NOT dataAtual = strRS("vmares_data") THEN
%>
<div class="row" style="padding-bottom: 5px;">
<div id="noticia_data" class="text-center"><%= strRS("vmares_data") %></div>
</div>
<%
dataAtual = strRS("vmares_data")
END IF
%>
<div class="row">
<div class="col-md-12 text-muted" style="font-size: 11px; border-bottom: 2px solid rgba(193, 193, 193, 0.3);">Adicionada às: <%=FormataHora(strRS("vmares_hora"))%></div>
<div class="col-md-12" style="padding-top: 20px;">
<p style="font-size: 20px;"><%=strRS("vmares_titulo")%></p>
</div>
<div class="col-md-12 text-muted" style="text-align: justify; padding-bottom: 12px;">
<%= LEFT(strRS("vmares_descricao"),400)%><% IF LEN(strRS("vmares_descricao")) > 400 THEN Response.Write " ..." END IF %>
</div>
<a href="index.asp?noticia=exibe&idnot=<%=strRS("id")%>" id="noticia_link" class="col-md-12 pull-right">+ detalhes</a>
</div>
<%
strRS.MoveNext
loop
END IF
END IF
%>
<!-- CODE | noticias -->
<!-- CODE | noticias paginação de dados -->
<nav aria-label="Page navigation">
<ul class="pagination" id="pagination"></ul>
</nav>
<div id="pagination_pag">Page 1</div>
<script type="text/javascript">
$('#pagination').twbsPagination({
totalPages: 35,
visiblePages: 2,
onPageClick: function (event, page) {
$("#pagination_pag").text('Page ' + page);
}
});
</script>
<!-- CODE | noticias paginação de dados -->
Só a paginação de dados abaixo agora, sabem como posso incrementar o TWBS com ASP e BANCO DE DADOS?
procurei na net, não encontrei nada em asp, alguém te dicas?
agradeço.
Obrigado até aqui.Colegas...
Consegui resolver de outra maneira, mas mesmo assim, obrigado pelos que tentaram e se doaram em ajudar...
Muchas Gracias...
FINALIZADO
Complementando, para outro caso....
consegui utililzar assim:
<%
'cria uma data ficticia, a qual nunca poderá repetir
data = "1900-01-01"
'faz um loop
DO WHILE NOT bootPAG.EOF
Response.Write "<div class=""col-xl-12 col-lg-12 col-md-12 col-md-12 col-xs-12"">"
'se não for igual, imprime... e vai fazendo o laço até o fim...
IF NOT data = bootPAG("data") THEN
Response.Write "<div class=""box-noticias-data-min mb-2"">"& FormataDataBrasileiro(bootPAG("data")) &"</div>"
data = bootPAG("data")
END IF
Response.Write "<div class=""box-noticias-titulo-min""><a href=""?idnot="& bootPAG("id") &"#topo"">"& TrataAcentos(bootPAG("titulo")) &"</a></div>"
Response.Write "</div>"
bootPAG.MoveNext
Loop
%>
Mas como quer ver tal consulta na coluna da data seria 1 registro para 3 registros de noticias? não vai rolar...
o que pode fazer é tratar na aplicação para mostrar somente datas diferentes
ou eu não entendi o que quis dizer...