Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Me pediram para fazer um sistema de leilão online, como eBay ou Mercado Livre, porem sem os leilões de usuários. O Admin poe os produtos, e os usuários dão lances.
O problema é que não consegui chegar a uma lógica para começar a programar.
Pelo que entendo do sistema de leilão funciona da seguinte forma: (me digam se estou errado)
Produto é cadastrado ao preço inicial de 1 real. O usuário pode dar lances de 2 reais para cima. Porem mesmo se ele por 50 reais, o que aparece é o valor de 2 reais. E se alguem tentar por 3 reais o sistema avisa que o lance não é o maior, assim o usuário tendo que por no mínimo 51 reais.
Está certo?
Agora minha dúvida é a lógica para isso.
No banco de dados produtos ficaria o preço inicial, e no banco de dados lances, cada lance com o id do produto. Mas por exemplo:
Produtos
ID - Nome - LanceMinimo
1 - Playstation 3 - 1.00
Lances
ID_usuario - ID_leilao - Lance
1 - 1 - 2.00
5 - 1 - 50.00
Nesse caso o maior lance seria R$ 50,00, porem deve aparecer o valor R$ 3,00 como lance, e se alguem tentar por R$ 4,00 avisar que existe um lance maior. Como exibir R$ 3,00 nesse caso?
Acho que está meio confuso :S
Obrigado
Sim, mas tipo. Se está a R$ 2,00 o leilão, e ele oferece R$ 50,00. Não pode ir pra R$ 50,00 pois sobe 1 real de cada vez. Então teria que ficar R$ 3,00 como lance que esta ganhando, porem com lance máximo de R$ 50,00 caso alguém queria dar lance, precisa dar R$ 51,00 ou mais.
O que não estou pegando, é a lógica para isso :(
Obrigado
Oras, ao invés de haver um campo de texto para o lance e um botão de envio, faça apenas um botão em que, a cada clique, incremente (UPDATE) o valor corrente em mais um.
Como o formulário terá o ID do produto na action, você tem como condicionar qual registro será incrementado (WHERE).
Eu faria uma página html com o produto e ao lado dele um campo de texto onde o usuário, cadastrado e "logado", pode escrever o valor do lance e clicar no botão chamado "dar lance". Essa página deve mostrar o lance mais alto até o momento. Dai, o usuário clica no botão "dar lance" e você compara com o valor atual. Se for maior que o valor atual, você faz uma pesquisa na base de dados para atualizar o lance mais alto e atualizar a página de lances.
Acho que por aí.