Ir para conteúdo

POWERED BY:

Arquivado

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

4.b

SELECT * TOP 5 - montando um sistema de noticias!

Recommended Posts

Estou montando um sisteminha de noticias em ASP com banco ACCESS.O problema é que na página principal do site preciso exibir as 5 ultimas noticias (SELECT * TOP 5)sendo que a ultima noticia cadastrada fique em destaque... As letras maiores, negrito e de outra cor...Alguem ja fez isso? Poderia dar uma dica?1) pensei em dar um select top 5 e de algumar forma nao pegar a ultima cadastrada, depois eu faria um select top 1 para pegar a ultima noticia. Seria uma alternativa, mas como fazer um select top 5 que nao pegue a ultima noticia cadastrada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso fazSELECT TOP 5 * FROM TABELA WHERE CAMPO NOT IN (SELECT TOP 1 CAMPO FROM TABELA)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, achei bastante interessante a dúvida de nosso amigo e resolvi ajudar. Foi um desafio pra mim também... programo em ASP há quase 2 anos e confesso que senti dificudades para solucionar sua dúvida.Bem, não usei TOP 5 pois eu queria primeiramente o último registro, não é isso? Bem, vamos lá:Criei, no Access, uma tabela (com nome "noticias") com as colunas "id" (chave-mestra e autonumeração, para servir de referência no código da string SQL: ORDER BY id DESC), outra coluna "Nomes", só para simular um possível autor da notícia e outra coluna "Mensagem" (como memorando, para armazenar a notícia em si).Bem, aí foi só criar o código ASP:Não vou explicar tudo pois o código já está mais ou menos comentado. Leia bem devagar e com BASTANTE atenção para entender o que foi que eu fiz. Aqui funcionou direitinho e o código está livre para todos modificarem ou adaptarem a seus gostos!Código ASP (início)---------------------------------------------------<%@ Language=VBScript %><% Option Explicit %><%'Cria uma conexão com o Banco de Dados Microsoft AccessDim objConnSet objConn = Server.CreateObject("ADODB.Connection")objConn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _ "DBQ=" & Server.MapPath("MeuBancoDeDados.mdb")objConn.Open ,"",""'Define a sua pesquisa SQL e a coloca em ordem decrescente,'pois a última notícia deverá ser a primeira. Para isso, definimos uma'chave mestra no seu BD, com autonumeração:Dim strSQLstrSQL = "SELECT * FROM noticias ORDER BY id DESC"'Cria um recordset para gravar seus registros:Dim objRSSet objRS = Server.CreateObject("ADODB.Recordset")objRS.Open strSQL, objConn, 0, 2 'Se não existir nenhuma notícia no BD, retorna a mensagem a seguir: If objRS.EOF Then Response.write "Não existe nenhuma notícia em nosso site!" 'Mas se existir alguma notícia, retorna esse bloco do script Else 'Recuperando a última notícia do BD e escrevendo-a na tela: Response.write "<font color=#000080 size=3 face=tahoma,arial><b>" Response.write objRS.Fields("nome").value & ": " Response.write objRS.Fields("mensagem").value Response.write "</b></font><br><br>" 'Avançando um registo no BD objRS.MoveNext 'Determinando quantas notícias deverão vir em seguida: Dim numEmSeguida numEmSeguida = 4 'Inserindo apenas uma variável para controle e iniciando o ciclo 'para as outras notícias Dim iLoop For iLoop=1 to numEmSeguida step 1 Response.write objRS.Fields("nome").value & ": " Response.write objRS.Fields("mensagem").value & "<br>" 'Avançando mais um registro no recordset para ir para 'a próxima linha do nosso BD objRS.MoveNext Next 'Finalizando o bloco do if End If'Encerrando o RecordSet:objRS.CloseSet objRS = Nothing'Fechando a conexão com nosso BD:objConn.CloseSet objConn = Nothing%>---------------------------------------------------------Código ASP (final)Bem, como alguns já sabem, é desnecessário incluir tudo em:Response.write objRS.Fields("nome").valueQue poderia ser substituído por apenas:Response.write objRS("nome")Mas é a força do hábito. Cada um tem seu estilo de programar, não é mesmo?Bom, é isso... qualquer dúvida estamos aí!Um abraço e boa sorte!_____________________________ASP yes! PHP never!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, muito tranquilo de fazer isso

 

faça uma busca primeiro

depois pegue a ultima linha, coloke em destaque

e vah mostrando as outras n noticias q você keira

 

se liga

 

Set RS = Server.CreateObject("ADODB.RecordSet")strSQL = "SELECT * FROM noticias"RS.Open strSQL, Conexao, 3, 3RS.MoveLast 'aki você vai pra ultima linhai = 1Do while not i = 6 'aki voce define qtas noticias irão entrar... pensa um pokinho pra saber a relação entre o nº de noticias e o valor do contadorTitulo = RS("titulo")   'exemploTexto = RS("texto")  'exemploFonte = RS("fonte")  'exemploIf i = 1 Then 'aki você entra com o destaque ou qq outra coisa.... é só saber q a 1a q tu pegar vai ser a tu ker colocar em destaqueresponse.Write("DESTAQUE: <br>")End Ifresponse.write(Titulo & "<br>")response.write(Texto & "<br>")response.write(Fonte & "<br>")RS.MovePreviousi = i + 1LoopSet RS = NothingCall FechaConexa() 'utilize alguma subrotina pra nao ter q ficar digitando sempre;)

espero q tenha entendido !!!!!! nessas horas eh bom saber usar os métodos RS.MoveLast, RS.MovePrevious,RS.MoverFirst,RS.MoveNext

dah uma olhadinha

 

[]s

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.