Ir para conteúdo

POWERED BY:

Arquivado

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

RonaldoSV

[Resolvido] fazendo vencer uma publicidade

Recommended Posts

Ola gente to esquentando a cabeça com isso:

 

Tenho um cadastro de publicidades em que la voce coloca em um campo quando ela vai vencer no campo você digita

Ex:

 

14-09-2010 10:20:00 (no banco ta em varchar pois nao consegui formatar certinho pra armazenar em date&time);

 

Então na pagina em que ha a publicidade eu queria que ela nao aparecesse se for a data e hora menor que a cadastrada.

 

Como posso fazer isso?

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta usar algo assim no select

"SELECT * FROM tabela WHERE campo_data < data_que_espira"

para você usar campo data não sei que db você esta usando mas SQL SERVER a data é MM-DD-AAAA e MYSQL AAAA-MM-DD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha esse exemplo em between

 

http://www.codefixer.com/codesnippets/select_between_dates_access_sql.asp

 

<%
Dim connection, recordset
Dim SQL, sConnString, dDate, dDateFrom, dDateTo

dDateFrom=#2003-12-07#
dDateTo=#2005-12-08#

SQL="SELECT dDate FROM tblDate WHERE dDate BETWEEN " & dDateFrom & " AND " & dDateTo

sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("datedb.mdb")

Set connection = Server.CreateObject("ADODB.Connection")
Set recordset = Server.CreateObject("ADODB.Recordset") 
connection.Open(sConnString)
recordset.Open SQL, connection
If Not recordset.Eof Then
Do While Not recordset.Eof 
dDate=recordset("dDate")
Response.write dDate & "<br />" 
recordset.movenext
Loop 
Else
Response.write "There are no records."
End If

Recordset.Close
Set Recordset = Nothing
Connection.Close
Set Connection = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode formatar a data antes de gravar e exibir na tela...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a ajuda gente;

Vou explicar o que acontece:

 

Neste portal de noticias que to fazendo eu tenho alguns subdiretorios;

 

esportes,mundo,geral,cinema....

 

tenho publicidade no Topo,Menu e em cada pagina dessas de subdireorio que são randomicas;

 

Na hora de cadastrar voce escolhe por um form onde voce quer colocar e quando vai expirar "data e hora"

 

Cada sibdiretorio é uma categoria que vai ser cadastrada 4 publicidades especificas para a categoria.

 

entao como fazer um select que mostra as propagandas que nao exipiraram e com random junto;

 

Isso é predreira pra mim nunca fiz algo do tipo.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... para fazer o Random... vai depender de qual BD você está usando...

 

Agora uma dica.... mude o tipo de dados do campo de data para dateTime... assim você terá um controle muito melhor da sua Query..

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

No seu select voce so seleciona as imagens que nao expiraram usando normalmente uma clausula WHERE, depois voce faz o randon no resultado usando GET.ROWS() - tem uma funcao aqui no imasters muito boa para isso. Eh nao achei o post.

 

Um abracao...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo você pode fazer o seguinte:

 

no select você faz a busca na TABELA_X procurando por DATA_SAIDA sendo > DATA_ATUAL.

 

Ex:

 

Set rsPubnoticias = Conexao.Execute("SELECT *FROM publicidades WHERE pagina = '"&Request.QueryString("SESSION")&"' AND local = 'direita' AND saida > "&data&" ORDER BY empresa ASC")

 

 

(OBS: nesse caso fiz igual tu ta precisando. Nesse select ele seleciona a pagina se é ESPORTE/MUNDO/BLA BLA BLA - Seleciona se vai no TOPO/NA LATERAL/MEIO - E so vai mostrar as publicidades cadastradas com data pra sair que não seja hoje.)

 

 

Creio poder ter ajudado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Patrique meu sql esta assim:

<%SELECT VencimentoPublicidade FROM Publicidade order by random limit 1%>
meio fora

vou tentar aqui com as dicas de voces e ver no que da gente;

obrigado.

postarei o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz aqui com o exemplo de Leonardo Bemfica mas está me retornando um erro estranho.

 

Meu sql esta assim:

 

<%set pubnoti = server.CreateObject("adodb.recordset")
sqlpn = "SELECT * FROM Publicidade WHERE LugarPublicidade = '"&local&"' AND VencimentoPublicidade > "&data&" order BY RAND() LIMIT 1"
pubnoti.open sqlpn,obj_conexao%>

Está aparecendo o seguinte erro:

 

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

 

[MySQL][ODBC 3.51 Driver][mysqld-5.1.50]Você tem um erro de sintaxe no seu SQL próximo a ':19:15 order BY RAND() LIMIT 1' na linha 1

 

/noticia.asp, line 150

 

Não sei o que está acontecendo....

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a ortografia. pode ser um nome de coluna Invalido 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no ... AND VencimentoPublicidade > "&data&" acho que está faltando aspas simples

... AND VencimentoPublicidade > '"&data&"'

 

Se o erro permanecer, dá um response.write na clausula sql para ver como ela está sendo passada

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique a ortografia, sintaxe, escreveu errado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

É mais fácil detectar o erro se escrever a sql como o Vinícius sugeriu

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.