Ir para conteúdo

POWERED BY:

Arquivado

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

cybergirl

Hora marcada

Recommended Posts

Olá galera , estou com um probleminha e espero que vcs possam me ajudar...bem criei um site de noticias em que as noticias devem aprecer no site com data e hora marcada, so que esta ocorrendo o seguinte problema, sempre que da 0:00 da erro no site, por exemplo: se tenho uma noticia programada para entrar as 10:00 do dia 19/05/2009 bleza ela entra no horario que marquei , porem ao chegar 0:00 se nao houver noticias para este horario as do dia anterior saem do ar e o site da erro.. vou postar o codigo pra vcs darem uma analisada.

 

<script language="JavaScript">function click() {if (event.button==2) {alert(' Copia proibida ');}}</script>
<link href="css/estilo.css" rel="stylesheet" type="text/css">
<%
ConnString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\home\odiariodeteresopolis\dados\jornal.mdb"
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.Open ConnString

data = day(date) & "/" & month(date) & "/" & year(date) 'Formato ( Data abreviada - DD/M/AAA )
hora =  FormatDateTime(Now, 4) 'Formato ( Hora Normal - HH:MM )

Set datahora = Server.CreateObject("ADODB.Recordset")
datahora.Open "SELECT DataNoticia,hora FROM Noticias ORDER BY DataNoticia desc", Conexao


Set Noticia = Server.CreateObject("ADODB.Recordset")
Noticia.Open "SELECT Top 2 Noticias.*,BancoImagens.*, Cadernos.* FROM Noticias,BancoImagens, Cadernos WHERE DestaqueNoticia2=1  AND BancoImagens.IdImagem=Noticias.IdImagem AND Cadernos.IdCaderno=Noticias.IdCaderno AND Noticias.hora <= #" & hora & "# AND Noticias.DataNoticia <= #" & data & "# ORDER BY IdNoticia desc", Conexao


Set Destaque = Server.CreateObject("ADODB.Recordset")
Destaque.Open "SELECT Noticias.*, BancoImagens.*, Cadernos.* FROM Noticias,BancoImagens, Cadernos WHERE DestaqueNoticia=1  AND BancoImagens.IdImagem=Noticias.IdImagem AND Cadernos.IdCaderno=Noticias.IdCaderno AND  Noticias.hora <= #" & hora & "# AND Noticias.DataNoticia <= #" & data & "# ORDER BY IdNoticia DESC", Conexao

  
Set Noticia2 = Server.CreateObject("ADODB.Recordset")
Noticia2.Open "SELECT  top 02  Noticias.*, Cadernos.* FROM Noticias, Cadernos WHERE DestaqueNoticia3=1 AND Cadernos.IdCaderno=Noticias.IdCaderno AND Noticias.hora <= #" & hora & "# AND Noticias.DataNoticia <= #" & data & "# ORDER BY IdNoticia DESC", Conexao

	
Set Noticia3 = Server.CreateObject("ADODB.Recordset")
Noticia3.Open "SELECT TOP 4 Noticias.*, Cadernos.* FROM Noticias, Cadernos WHERE DestaqueNoticia4=1 AND Cadernos.IdCaderno=Noticias.IdCaderno AND Noticias.hora <= #" & hora & "# AND Noticias.DataNoticia <= #" & data & "# ORDER BY IdNoticia DESC", Conexao


Set Noticia4 = Server.CreateObject("ADODB.Recordset")
Noticia4.Open "SELECT TOP 10 Noticias.* FROM Noticias where DestaqueNoticia4<>1 AND DestaqueNoticia3<>1 AND DestaqueNoticia2<>1 AND DestaqueNoticia<>1 AND  Noticias.hora <= #" & hora & "#  AND Noticias.DataNoticia <= #" & data & "# ORDER BY IdNoticia DESC", Conexao

%>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<table width="606" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
	<th height="10" colspan="3" valign="top" scope="col"><img src="imagens/spacer10.gif" width="10" height="10" /></th>
  </tr>
  <tr>
	<th width="400" height="547" valign="top" scope="col"><table width="400" border="0" align="right" cellpadding="0" cellspacing="0">
	  <tr>
		<th width="400" scope="col"><img src="imagens/spacer.gif" width="10" height="10" /></th>
	  </tr>
	  <tr>
		<td><img src="../fotos/<%= Destaque("Imagem") %>" width="384" height="256" border="1" /></td>
	  </tr>
	  <tr>
		<td height="25"><strong><a href="leitura_noticias.asp?IdNoticia=<%= Destaque("IdNoticia") %>"  class="titulocaderno"><%= Destaque("sobtitulonoticia") %></a></strong></td>
	  </tr>
	  <tr>
		<td><strong><a href="leitura_noticias.asp?IdNoticia=<%= Destaque("IdNoticia") %>"  class="titulodestaque2"><%= Destaque("TituloNoticia") %></a></strong></td>
	  </tr>
	  <tr>
		<td align="justify"><a href="leitura_noticias.asp?IdNoticia=<%= Destaque("IdNoticia") %>" class="texto_destaque"><%=left(Destaque("TextoNoticia"),300)%>
				<% if len(Destaque("TextoNoticia")) > 300 then %>
		  ...Leia mais
		  <% end if %>
		</a><a href="leitura_noticias.asp?IdNoticia=<%= Destaque("IdNoticia") %>" class="mssansserif1"></a></td>
	  </tr>
	  <tr>
		<td><img src="imagens/pontilhado_grande.jpg" width="382" height="10" /></td>
	  </tr>
	  <tr>
		<td><% Noticia2.MoveFirst : While Not Noticia2.EOF %>
			  <table width="391" border="0" cellspacing="0" cellpadding="0">
				<tr>
				  <th scope="col"><img src="imagens/spacer10.gif" width="10" height="10" /></th>
				</tr>
				<tr>
				  <th width="242" align="left" valign="top" scope="col"><table width="391" border="0" cellspacing="0" cellpadding="0">
					  <tr>
						<th height="29" align="left" scope="col"><strong><a href="leitura_noticias.asp?IdNoticia=<%= Noticia2("IdNoticia") %>"  class="titulocaderno"><%= Noticia2("sobtitulonoticia") %></a></strong></th>
					</tr>
					  <tr>
						<th width="391" align="left" scope="col"><strong><a href="leitura_noticias.asp?IdNoticia=<%= Noticia2("IdNoticia") %>" class="titulodestaque2"><%= Noticia2("TituloNoticia") %></a></strong></th>
					  </tr>
					  <tr>
						<td><div align="justify"><a href="leitura_noticias.asp?IdNoticia=<%= Noticia2("IdNoticia") %>" class="texto_destaque"><%=left(Noticia2("TextoNoticia"),256)%>
								  <% if len(Noticia2("TextoNoticia")) > 256 then %>
						  ...Leia mais
						  <% end if %>
						</a></div></td>
					  </tr>
					  <tr>
						<td><div align="center"><img src="imagens/pontilhado_grande.jpg" width="382" height="10" /></div></td>
					  </tr>
				  </table></th>
				</tr>
				<tr>
				  <td colspan="3"></td>
				</tr>
			  </table>
		  <% Noticia2.MoveNext : Wend %></td>
	  </tr>
	</table></th>
	<th width="10" align="center" valign="top" scope="col"><img src="imagens/barranova.jpg" width="5" height="550" /></th>
	<th width="196" rowspan="5" valign="top" scope="col"><table width="206" border="0" cellspacing="0" cellpadding="0">
	  <tr>
		<th width="206" scope="col"><img src="imagens/spacer.gif" width="10" height="10" /></th>
	  </tr>
	  <tr>
		<th scope="col"> <% Noticia.MoveFirst : While Not Noticia.EOF %>
			  <table width="190" border="0" align="center" cellpadding="0" cellspacing="0">
				<tr>
				  <th align="left" scope="col"><img src="../fotos/<%= Noticia("Imagem") %>" width="183" height="147" border="1" /></th>
				</tr>
				<tr>
				  <th height="25" align="left" scope="col"><strong><a href="leitura_noticias.asp?IdNoticia=<%= Noticia("IdNoticia") %>"  class="titulocaderno"><%= Noticia("sobtitulonoticia") %></a></strong></th>
				</tr>
				<tr>
				  <th align="left" scope="col"><strong><a href="leitura_noticias.asp?IdNoticia=<%= Noticia("IdNoticia") %>" class="titulodestaque2"><%= Noticia("TituloNoticia") %></a></strong></th>
				</tr>
				<tr>
				  <td><div align="justify"><a href="leitura_noticias.asp?IdNoticia=<%= Noticia("IdNoticia") %>" class="texto_destaque"><%=left(Noticia("TextoNoticia"),163)%></a><a href="leitura_noticias.asp?IdNoticia=<%= Noticia("IdNoticia") %>" class="texto_destaque">
					  <% if len(Noticia("TextoNoticia")) > 163 then %>
					...Leia mais
					<% end if %>
				  </a><a href="leitura_noticias.asp?IdNoticia=<%= Noticia("IdNoticia") %>" class="texto_destaque"></a></div></td>
				</tr>
				<tr>
				  <td height="15"><img src="imagens/pontilhado.jpg" width="187" height="10" /></td>
				</tr>
			  </table>
		  <% Noticia.MoveNext : Wend %></th>
	  </tr>
	  <tr>
		<td height="84"><% Noticia3.MoveFirst : While Not Noticia3.EOF %>
		  <table width="190" border="0" align="center" cellpadding="0" cellspacing="0">
		  <tr>
			<th height="26" align="left" scope="col"><strong><a href="leitura_noticias.asp?IdNoticia=<%= Noticia3("IdNoticia") %>"  class="titulocaderno"><%= Noticia3("sobtitulonoticia") %></a></strong></th>
		  </tr>
		  <tr>
			<th width="250" align="left" scope="col"><strong><a href="leitura_noticias.asp?IdNoticia=<%= Noticia3("IdNoticia") %>" class="titulodestaque2"><%= Noticia3("TituloNoticia") %></a></strong></th>
		  </tr>
		  <tr>
			<td><div align="justify"><a href="leitura_noticias.asp?IdNoticia=<%= Noticia3("IdNoticia") %>" class="texto_destaque"><%=left(Noticia3("TextoNoticia"),163)%>
					  <% if len(Noticia3("TextoNoticia")) > 163 then %>
			  ...Leia mais
			  <% end if %>
			</a></div></td>
		  </tr>
		  <tr>
			<td height="15"><div align="center"><img src="imagens/pontilhado.jpg" width="187" height="10" /></div></td>
		  </tr>
		</table>
		  <% Noticia3.MoveNext : Wend %></td>
	  </tr>
	  
	</table></th>
  </tr>
  <tr>
	<td height="10" bgcolor="222F37"><span class="tituloutros" style=" padding-left:5px"> <strong>PLANTÃO O DIÁRIO</strong>:</span></td>
	<td> </td>
  </tr>
  <tr>
	<td height="232" valign="top"><% Noticia4.MoveFirst : While Not Noticia4.EOF %>
	  <table width="390" border="0" cellspacing="0" cellpadding="0">
		<tr>
		  <th align="left" scope="col"><img src="imagens/spacer10.gif" width="10" height="10" /></th>
		</tr>
		<tr>
		  <th width="424" align="left" scope="col"><a href="leitura_noticias.asp?IdNoticia=<%= Noticia4("IdNoticia") %>" class="titulodestaque2"><%= Noticia4("TituloNoticia") %></a></th>
		</tr>
	  </table>
	  <a href="leitura_noticias.asp?IdNoticia=<%= Noticia4("IdNoticia") %>" class="Noticias4"></a>
	  <% Noticia4.MoveNext : Wend %>
	  <br />
	<a href="busca2.asp" class="titulodestaque2"><strong>Ver mais notícias »</strong></a></td>
	<td><img src="imagens/barra_231.jpg" width="10" height="232" /></td>
  </tr>
  <tr>
	<td height="20" bgcolor="222F37"> </td>
	<td> </td>
  </tr>
  <tr>
	<td valign="top"><img src="imagens/spacer10.gif" width="10" height="10" />
	<iframe marginwidth="11" marginheight="0" src="http://www.agenciario.com/modelos_noticias/400x168.htm" frameborder="0" scrolling="No" vscrolling="no" width="400" height="168" topmargin="0" leftmargin="0"></iframe></td>
	<td> </td>
  </tr>
</table>
	<%
Noticia.Close
Set Noticia = Nothing

Noticia2.Close
Set Noticia2 = Nothing

Noticia3.Close
Set Noticia3 = Nothing

Noticia4.Close
Set Noticia4 = Nothing

Destaque.Close
Set Destaque = Nothing

%>

Desde ja agradeço a atençao de vcs....bjinhos

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que falta pra você é testar se o recordset tem registro ou não antes de exibir. ex.:

 

<%If not Destaque.eof then%>
  <tr>
	<th height="10" colspan="3" valign="top" scope="col"><img src="imagens/spacer10.gif" width="10" height="10" /></th>
  </tr>
  <tr>
	<th width="400" height="547" valign="top" scope="col"><table width="400" border="0" align="right" cellpadding="0" cellspacing="0">
	  <tr>
		<th width="400" scope="col"><img src="imagens/spacer.gif" width="10" height="10" /></th>
	  </tr>
	  <tr>
		<td><img src="../fotos/<%= Destaque("Imagem") %>" width="384" height="256" border="1" /></td>
	  </tr>
	  <tr>
		<td height="25"><strong><a href="leitura_noticias.asp?IdNoticia=<%= Destaque("IdNoticia") %>"  class="titulocaderno"><%= Destaque("sobtitulonoticia") %></a></strong></td>
	  </tr>
	  <tr>
		<td><strong><a href="leitura_noticias.asp?IdNoticia=<%= Destaque("IdNoticia") %>"  class="titulodestaque2"><%= Destaque("TituloNoticia") %></a></strong></td>
	  </tr>
	  <tr>
		<td align="justify"><a href="leitura_noticias.asp?IdNoticia=<%= Destaque("IdNoticia") %>" class="texto_destaque"><%=left(Destaque("TextoNoticia"),300)%>
				<% if len(Destaque("TextoNoticia")) > 300 then %>
		  ...Leia mais
		  <% end if %>
		</a><a href="leitura_noticias.asp?IdNoticia=<%= Destaque("IdNoticia") %>" class="mssansserif1"></a></td>
	  </tr>
	  <tr>
		<td><img src="imagens/pontilhado_grande.jpg" width="382" height="10" /></td>
	  </tr>
<%end if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brigadinha Jonathas, vou testar aqui mas acho que nao vai resolver meu problema pq é o seguinte meu recordset esta com a condição where programada pra exibir as noticias com hora <= a hora atual, o problema é que quando chega meia noite ou seja 0:00h as noticias do dia anterior que estavam progrmadas pra horarios maiores que zero hora dao pau e somem e como geralmente nao tenho noticias programadas pra zero hora o site fica com erro ate a proxima noticia do dia...mas de qualquer forma vou testar sua sugestao e aguardo novas..bjus galera...

Compartilhar este post


Link para o post
Compartilhar em outros sites

UHmmm acho que nao funcionaria J , porque 23:59h é maior que 0:00h e no meu caso é exibido a noticia que tem a hora menor ou igual...iria continuar dando o mesmo erro..mas valeu, to testando umas implementações aqui se descobrir algo aviso...continuo no aguardo de mais sugestoes ...bjus

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá cybergirl sou novo aqui no forum, tenho uma dica não sei se você ja tentou, ve se consegue amarrar com um if...else, derrepente por alguma condição que mantenha as noticias mesmo após a 0:00 ate a proxima noticia na data atual...sei lá tenta ai , qualquer coisa posta ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O tipo de campo é date/time...

Compartilhar este post


Link para o post
Compartilhar em outros sites

KObutii, na verdade nao tem apareceido codigo de erro, vou tentar explicar o que tem acontecido, tipo meu recordset ta assim:

Set Destaque = Server.CreateObject("ADODB.Recordset")
Destaque.Open "SELECT Noticias.*, BancoImagens.*, Cadernos.* FROM Noticias,BancoImagens, Cadernos WHERE DestaqueNoticia=1  AND BancoImagens.IdImagem=Noticias.IdImagem AND Cadernos.IdCaderno=Noticias.IdCaderno AND  Noticias.hora <= #" & hora & "# AND Noticias.DataNoticia <= #" & data & "# ORDER BY IdNoticia DESC", Conexao

Entao vamos supor que eu tenha uma noticia programada para o dia 22/05 às 0:00h e depois programe outra para as 10:00h da manha, ate ai tudo certo ao chegar 10:00 horas o sistema modifica a noticia perfeitamente, vamos supor que a proxima noticia a entrar seja às 10:00 da manha do dia 23/05 não há nehuma noticia programada para 0:00 do dia 23, porem quando chega a 0:00 do dia 23 se não houver noticia programada para esse horario o sistema puxa a noticia das 0:00 do dia 22 ate que de 10:00 do dia 23 e ele troque pra noticia programada e caso não tenha noticia programada pra 0:00 em nenhuma data anterior aparece a mensagem de banco de dados vazio. queria encontrar uma solução para que isso não ocorra mais. Fico no aguardo da ajuda da galera , preciso muito resolver isso.

 

Grata

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só após você executar a consulta com os dois horários e mandar ordenar pela data e horario (ambos decrescente).

Compartilhar este post


Link para o post
Compartilhar em outros sites

KObutii, na verdade nao tem apareceido codigo de erro, vou tentar explicar o que tem acontecido, tipo meu recordset ta assim:

Set Destaque = Server.CreateObject("ADODB.Recordset")
Destaque.Open "SELECT Noticias.*, BancoImagens.*, Cadernos.* FROM Noticias,BancoImagens, Cadernos WHERE DestaqueNoticia=1  AND BancoImagens.IdImagem=Noticias.IdImagem AND Cadernos.IdCaderno=Noticias.IdCaderno AND  Noticias.hora <= #" & hora & "# AND Noticias.DataNoticia <= #" & data & "# ORDER BY IdNoticia DESC", Conexao

Entao vamos supor que eu tenha uma noticia programada para o dia 22/05 às 0:00h e depois programe outra para as 10:00h da manha, ate ai tudo certo ao chegar 10:00 horas o sistema modifica a noticia perfeitamente, vamos supor que a proxima noticia a entrar seja às 10:00 da manha do dia 23/05 não há nehuma noticia programada para 0:00 do dia 23, porem quando chega a 0:00 do dia 23 se não houver noticia programada para esse horario o sistema puxa a noticia das 0:00 do dia 22 ate que de 10:00 do dia 23 e ele troque pra noticia programada e caso não tenha noticia programada pra 0:00 em nenhuma data anterior aparece a mensagem de banco de dados vazio. queria encontrar uma solução para que isso não ocorra mais. Fico no aguardo da ajuda da galera , preciso muito resolver isso.

 

Grata

cybergirl,

 

Pelo que andei lendo do seu código, você manda exibir o RecordSet existindo resultados ou não...

O erro ocorre porque não tem nenhum resultado para exibir...

 

Um simples

If rs.EOF Then
// Mostre uma msg que não tem notícia ou não altere a notícia que já tem, fica a seu critério.
else
// Mostra a notícia do horário
End If

Acho que isso deve resolver seu problema, dpois poste os resultados :)

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada galera pelas respontas, bem seguinte:

 

HARGON vou tentar fazer do jeito que você falou qualquer coisa eu posto aqui...

 

KOBUTII o problema é que nao quero que apareça mensagem dizendo que não ha noticias, eu quero que ao chegar 0:00 caso não exista noticias programada pra essa data e horario o site continue exibindo a noticia cadastrada na data e horario anterior, ate que chegue em um horario que exista noticia cadastrada para aquele dia...

 

 

HEBER Brigadinha pela resposta, mas ja tentei isso e não funcionou...

 

BJUS A TODOS

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada galera pelas respontas, bem seguinte:

 

HARGON vou tentar fazer do jeito que você falou qualquer coisa eu posto aqui...

 

KOBUTII o problema é que nao quero que apareça mensagem dizendo que não ha noticias, eu quero que ao chegar 0:00 caso não exista noticias programada pra essa data e horario o site continue exibindo a noticia cadastrada na data e horario anterior, ate que chegue em um horario que exista noticia cadastrada para aquele dia...

 

 

HEBER Brigadinha pela resposta, mas ja tentei isso e não funcionou...

 

BJUS A TODOS

Então cybergirl a msg ali foi só algo pra não ficar sem nexo, vazios..

 

 

No IF você poderia colocar um

sql = "SELECT TOP 1 * FROM tabela ORDER BY id DESC"

no caso ele vai pegar a última notícia... supondo que sua primary key seja id

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só após você executar a consulta com os dois horários e mandar ordenar pela data e horario (ambos decrescente).

Hargon fiz meu recordset assim :

 

Set Noticia = Server.CreateObject("ADODB.Recordset")
Noticia.Open "SELECT Top 2 Noticias.*,BancoImagens.*, Cadernos.* FROM Noticias,BancoImagens, Cadernos WHERE DestaqueNoticia2=1  AND BancoImagens.IdImagem=Noticias.IdImagem AND Cadernos.IdCaderno=Noticias.IdCaderno AND Noticias.hora <= #" & hora & "# AND Noticias.DataNoticia <= #" & data & "# OR Noticias.hora >= #" & hora & "# AND Noticias.DataNoticia <= #" & data & "# ORDER BY IdNoticia desc", Conexao

é isso que você quis dizer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria +- isso que disse

ORDER BY Noticias.DataNoticia DESC, Noticias.hora DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria +- isso que disse

SQL

ORDER BY Noticias.DataNoticia DESC, Noticias.hora DESC

Hargon coloquei meu record set assim agora, seguindo mais ou menos o que você me orientou:

 

Set Noticia = Server.CreateObject("ADODB.Recordset")
Noticia.Open "SELECT Noticias.*,BancoImagens.*, Cadernos.* FROM Noticias,BancoImagens, Cadernos WHERE DestaqueNoticia2=1  AND BancoImagens.IdImagem=Noticias.IdImagem AND Cadernos.IdCaderno=Noticias.IdCaderno AND Noticias.hora <= (" & hora & ") AND Noticias.DataNoticia <= (" & data & ") ORDER BY Noticias.DataNoticia DESC, Noticias.hora DESC Limit 2", Conexao

so que esta dando o seguinte erro :

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[MySQL][ODBC 3.51 Driver][mysqld-5.1.30-community-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':00) AND Noticias.DataNoticia <= (29/5/2009) ORDER BY IdNoticia desc Limit 2' at line 1

 

/indexw.asp, line 23

 

sera que a a data e hora ta com algum problema na consulta ao meu BD mysql? ...se quiser posto o codigo completo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lembrando que:

No mysql as datas tem de ficar entre aspas simples... logo

 

errado

SELECT * FROM tabela WHERE hora = 00:00
certo

SELECT * FROM tabela WHERE hora = '00:00'

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.