Logo Hardware.com.br
rwar
rwar Tô em todas Registrado
2.4K Mensagens 13 Curtidas

[PHP] Item removido quando usuário vai ler, como verificar?

#1 Por rwar 29/07/2005 - 15:48
Dada uma lista com links para o usuário, como posso fazer para que, se o admin neste meio tempo excluir a notícia, exiba uma mensagem para o usuário?

O que eu fiz foi o sql para obter as notícias. Dentro do while, fiz um outro sql para verificar se o link ainda existe. Mas então pensei: isto nunca vai funcionar, pois teria que recarregar o form (e refazer o sql, no caso), para obter novamente os valores, afinal o php é dinâmico.

Como o pessoal faz em relação a este problema? Ou não fazem nada?
Kleber Costa
Kleber Costa General de Pijama Registrado
5.2K Mensagens 1 Curtida
#2 Por Kleber Costa
29/07/2005 - 22:42
Roni pelo que eu entendi não tem como fazer dessa maneira que vc quer! Uma possível solução a priori, seria não deletar a notícia do banco! Só deixá-la indisponível(criar um campo em alguma tabela pra fazer esse controle)! Aí quando o usuário clicar pra ler vc tem como checar, caso esteja disponível vc exibe, caso não esteja disponível vc exibe uma msg e recarrega a página com os links para as notícias disponíveis!

Outra idéia que me passou pela cabeça foi usar xml! Aí quebraria um galho danado! Mesmo que estivesse indisponível ou deletada do banco, teria como ler a notícia!!
Salve! Ó terra dos altos coqueiros!
De belezas soberbo estendal!
Nova Roma dos bravos guerreiros
Pernambuco, imortal, imortal!


Linux User #262254
FMC
FMC Ubbergeek Registrado
8.3K Mensagens 5 Curtidas
#4 Por FMC
04/08/2005 - 22:57
rwar, pelo que eu entendi um if da vida resolveria... vamos ver se entendi bem:


if($noticia = mysql_result(mysql_query("SELECT noticia FROM noticias WHERE id = '1029'),0,0)):
echo $noticia;
else:
echo "a noticia foi apagada pelo administrador de redes dos infernos";
endif;


Será que isto não basta?

Ou será que entendi tudo errado! hehe

Flw!
FMC = Fábio Magalhães Catunda
Kleber Costa
Kleber Costa General de Pijama Registrado
5.2K Mensagens 1 Curtida
#5 Por Kleber Costa
05/08/2005 - 01:43
Imagina que fulano acessa o site, o script faz a pesquisa no banco e gera 10 links para as notícias! Assim que a página é carregada, a namorada de fulano liga pra ele! Ela tá virada...... dizendo que a amiga dela viu fulano, na noite passada, dominado pelo álcool, dançando com 3 muié em cima do balcão, lá na boate Noite Escura!! Aí fulano foi enrrolar a namorada, e nesse tempinho(uns 15min), o admin deletou as noticias com as ids 3, 6 e 8. Mas no html que o servidor gerou pra fulano, 15 minutos atrás, tá lá os 10 links competinhos! E agora? Não tem como avisar ao usuário que a notícia foi deletada sem que ele clique no link pra página carregar de novo.

Amadurecendo a idéia, quando ela estiver indisponível ela aparece como se fosse uma notícia normal! Pq se o usuário tem o link é pq ele foi gerado antes de tornar a notícia indisponível! E quando fosse gerar os links novamente, era só perguntar pelos disponíveis!!! Aí a cada 2 dias ou mais essas notícias eram deletadas do banco!! Outra coisa, poderia usar session pra garantir que ele possa ler as 10 notícias. E assim evitar que ao carregar a página, os links para as ids(6 e 8, partindo da idéia que ele clicaou na 3) desapareçam.

Outra coisa que esqueçi de comentar, essa semana andei lendo sobre o ajax e pelo pouco que eu entendi, ele seria ideal pra fazer isso! Mas só lembrando que eu nunca fiz nada com ajax e não sei se realmente é possível.
Salve! Ó terra dos altos coqueiros!
De belezas soberbo estendal!
Nova Roma dos bravos guerreiros
Pernambuco, imortal, imortal!


Linux User #262254
rwar
rwar Tô em todas Registrado
2.4K Mensagens 13 Curtidas
#6 Por rwar
05/08/2005 - 09:07
FMC
rwar, pelo que eu entendi um if da vida resolveria... vamos ver se entendi bem:

Será que isto não basta?

Nâo resolveria não, como o Kleber falou :mrgreen: justamente pelas suposições que ele tomou (principalmente da boate Noite Escura :mrgreen: - tava inspirado hein? :lol: )

Esta parte das notícias é uma suposição que a analista observou. A parte das notícias é praticamente estático, ou seja, não são excluídas, mas que se tivesse que implementar nesta seção, deveria se implementar em todas outras do portal.

Até porque, geralmente nos projetos que conheço, quando se clica em algum item da página (link, item de um select box, etc) este redireciona para outro script. Quando a página é montada, aparecem somente os cabeçalhos estáticos, sem o conteúdo.

Kleber, ainda não li sobre o ajax, mas o portal javafree utiliza para as notícias veiculadas na capa. Mesmo assim, vou ler para verificar se isto é possível. Valeu! :wink:
No caminho dos scripts. Por enquanto, powershell...
FMC
FMC Ubbergeek Registrado
8.3K Mensagens 5 Curtidas
#7 Por FMC
05/08/2005 - 11:29
Uma solução seria abrir uma session pro usuário e bloquear a tabela enquanto a session estiver aberta, assim o administrador só apaga a notícia caso não estejam sendo exibidos links.

Outra forma é não apagar a notícia em definitivo, apenas criar um campo na database que define a notícia como disponível ou não, após um dia indisponível a notícia pode ser apagada. Seria interessante definir um tempo máximo para as seções, passado este período da marcação da notícia como indisponível, então pode-se apaga-la sem gerar problemas.

Flw!
FMC = Fábio Magalhães Catunda
rwar
rwar Tô em todas Registrado
2.4K Mensagens 13 Curtidas
#8 Por rwar
05/08/2005 - 14:13
FMC
Uma solução seria abrir uma session pro usuário e bloquear a tabela enquanto a session estiver aberta, assim o admini...

É por aí, FMC. Mas como eu disse, teria que se pensar em fazer a nível de projeto inteiro, e não apenas de notícias. Prá se ter uma idéia, este projeto tem cerca de 150 tabelas. Teria um trabalho danado para "globalizar" essa idéia.

Enquanto o cliente não reclamar (e o cliente é gente grande, pode ter certeza), por enquanto se deixa como está... :P
No caminho dos scripts. Por enquanto, powershell...
rwar
rwar Tô em todas Registrado
2.4K Mensagens 13 Curtidas
#10 Por rwar
05/08/2005 - 16:35
FMC
Muitas vezes projetos grandes tem APIs, includes ou algo parecido que tratam das tarefas mais comuns, caso este seja seu ambiente não será tão trabalhoso assim modificar o código!

Então vou fazer uma pergunta pro pessoal que desenvolve/analisa: vocês consideram esta hipótese mencionada comum em seus projetos, ou seja, em uma fração de tempo, ter que tratar um item que não exista mais?
No caminho dos scripts. Por enquanto, powershell...
FMC
FMC Ubbergeek Registrado
8.3K Mensagens 5 Curtidas
#11 Por FMC
05/08/2005 - 16:56
Sim, é necessário tratar qualquer possibilidade de erro, mesmo pq é muito possível que o próprio usuário cause o erro.

Vamos supor que seu sistema funciona com uns gets da vida, então você tem o endereço www.xyz.com.br/noticia.php?noticia=143
Então o usuário bookmarca este endereço... depois de um ano ele vai lá e clica no link que está esquecido no bookmark, se seu sistema não tiver o tratamento de erros vai dar meleca... é bom ao menos mostrar uma mensagem de erro amigavel!

Flw!
FMC = Fábio Magalhães Catunda
GBastos
GBastos Super Participante Registrado
777 Mensagens 4 Curtidas
#13 Por GBastos
06/08/2005 - 19:01
Kleber Costa
Outra coisa que esqueçi de comentar, essa semana andei lendo sobre o ajax e pelo pouco que eu entendi, ele seria ideal pra fazer isso! Mas só lembrando que eu nunca fiz nada com ajax e não sei se realmente é possível.


Foi a primeira coisa que pensei quando li o topico.. O Ajax, pelo que li, seria perfeito nesse caso... O negócio é se aprofundar pra ver como é que faz.

Outra coisa, não desenvolvo para web mas realmente, como o rwar falou, acho que deve ser uma funcionalidade comum nesse ambiente..
Ever tried. Ever failed. No matter. Try again. Fail again. Fail better.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal