Jump to content
Matunga

Adicionando um incremento numa query

Recommended Posts

Matunga

Olá amigos,estou com a seguinte duvida:

Tenho duas tabelas na base de dados chamadas

top (ID, escolha_votacao, numero_votos)

votar (ID, autor_votacao, email_autor_votacao, escolha_votacao)

Estas tabelas vão receber informações ao mesmo tempo após o clique no botão submeter escolha musica.

imaginemos agora a situação seguinte das mesmas tabelas:

tabela top:

--> ID: 1

--> escolha_votacao: Kikka - Guess is Alright

--> numero_votos: 1

tabela votar:

--> ID: 1

--> autor_votacao: Matunga ($login)

--> email_autor_votacao: exemplo@exemplo.pt

--> escolha_votacao: Kikka - Guess is Alright

A tabela top já tem um voto na música da Kikka, e eu cria agora, e sempre que se votasse na mesma música, fosse feito um UPDATE na tabela e adicionado um voto adicionando assim uma unidade ao voto que já lá está, não estou a conseguir fazer isso e peço a vossa ajuda se fosse possível:


			<table class="table_votacao" border=0 style="width: 98%">
				<tr>
					<td style="background: #FBA943" colspan="3"><center>Vote na sua música preferida</center></td>
				</tr>
				<?
				$opcoes = mysql_query("SELECT * FROM escolhas_votar"); // esta tabela tem todas as opções de votação
				while ($linha = mysql_fetch_array($opcoes)) {
				  $nome_opcao = $linha['nome_opcao']
				?>
				<tr>
					<td class="td_votacao_radio_buttom"><input type="radio" name="grupo1" value="<? echo $nome_opcao ?>"></td>
					<td colspan="2" class="td_musica_a_votar"><? echo $nome_opcao ?></td>
				</tr>
				<?
				}
				?>
				<tr>
					<td align="center" colspan="3"><input style="cursor: pointer;" value="Votar" type="submit" name="votar" id="imageField" class="btn_votar" /><!--<a title="Adicionar a sua própria escolha" class="btn_votar_adicionar"href="?f=add_votar">Adicionar</a>--></td>
				</tr>
			</table>


$votar = mysql_query("INSERT INTO votar (autor_votacao, email_autor_votacao, escolha_votacao) VALUES ('$login','exemplo@exemplo.pt','Kikka - Guess is Alright')");

$top = mysql_query("INSERT INTO top (escolha_votacao, numero_votos) VALUES ('$escolha','1')");

Já tentei:

--> Fazer uma query à tabela top e verificar o numero de votos da musica submetida no formulário;

--> Criar um vector com o numero de votos da tabela de uma determinada musica e depois aplicar a função SUM, mas depois como o vector é criado dentro das {} do while, são criados tantos vectores quantas linhas existirem na tabela

como não cheguei a conclusão nenhuma vou aqui omitir essa minha parte e pedir a vossa ajuda.

Cumprimentos e um feliz 2014 para todos :)

Edited by Matunga

Share this post


Link to post
Share on other sites
acao

boas

você tem que fazer um select à tabela aonde já tem os dados votados e guardar o valor numa variável,

depois para adicionar os votos ao fazer o update, soma o valor do voto com o valor da variável.

atenção que você tem que saber se vai fazer um update ou um insert.

isso consegue-se no selec que foquei anteriormente

se tem dados faz-se update

senão é um select (para adicionar uma linha á tabela) e aqui só já é o valor do primeiro voto.

cumps

acao

Edited by acao

Share this post


Link to post
Share on other sites
HappyHippyHippo

três passos:

- retira o campo numero_votos da tabela top

- altera o campo escolha_votacao para id_escolha_votacao e passará a ser o ID da música votada

- o número de votos na música com o ID 303 passa a ser o resultado da seguinte query:

select count(ID) from votar where id_escolha_votacao = '303'


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Matunga

Muito obrigado pessoal, acao e HappyHippyHippo pela ajuda até agora prestada, se mais alguém sugerir alguma forma diga aqui.

Cumprimentos ;)

Share this post


Link to post
Share on other sites
N3lson

Porque fazes um Insert e não um update

Update votar SET campo = $campo + 1 WHERE id = x


You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.