Ir para conteúdo

Arquivado

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

William Alvares

Sistema de avaliação igual da google play

Recommended Posts

Cara, é dificil assim "ajudar a criar" do zero. Precisamos saber em que tipo de sistema você quer implantar.

 

basicamente é só criar uma tabela indicando o produto a ser votado, o voto (1 a 5) e no site fazer uma contagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, é dificil assim "ajudar a criar" do zero. Precisamos saber em que tipo de sistema você quer implantar.

 

basicamente é só criar uma tabela indicando o produto a ser votado, o voto (1 a 5) e no site fazer uma contagem.

 

Ah sim, realmente D=

É em topicos vamos por assim dizer.. que já ta pronto só falta o sistema dentro dos topicos..

 

 

Sua dificuldade está no front ou back-end?

 

No back-end

Minha dificuldade é o sistema em si de avaliação, tipo eu nao conseguiu entender como funciona um voto de 4 pontos com um de 5 que vai resultar em não faço ideia quantos pontos no total para mostrar na pagina

 

Olha o que eu já tenho como base:

http://i.imgur.com/A0TnQNp.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só fazer uma média aritmética.

Cada opinião tem uma pontuação. Basta somar todas as pontuações e dividir pelo número de opiniões. Vai resultar na avaliação média

 

 

Tudo começa com um Sistema de Cadastro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só fazer uma média aritmética.

Cada opinião tem uma pontuação. Basta somar todas as pontuações e dividir pelo número de opiniões. Vai resultar na avaliação média

 

 

Tudo começa com um Sistema de Cadastro.

 

Sistema de INSERT, DELETE, SELECT eu tenho aqui já, só não faço ideia de por onde começar um sistema de avaliação =/

<?php

if(isset($_SESSION['useronnected']) && (isset($_SESSION['passconnected']))){
	header("Location: page.php?p=home");
}

if(isset($_POST['register'])){
		$txtname		 = trim(strip_tags($_POST['txtname']));
		$txtuser 		 = trim(strip_tags($_POST['txtuser']));
		$txtpassword 	 = trim(strip_tags($_POST['txtpassword']));
		$txtemail 		 = trim(strip_tags($_POST['txtemail']));
		
		//SELECIONAR BANCO DE DADOS
		$insert = "INSERT into 
					users 
					(name, user, password, email, level) 
					VALUES 
					(:txtname, :txtuser, :txtpassword, :txtemail, '1'";
		
		try {
			$result = $conexao->prepare($insert);
			$result->bindParam(':txtname', $txtname, PDO::PARAM_STR);
			$result->bindParam(':txtuser', $txtuser, PDO::PARAM_STR);
			$result->bindParam(':txtpassword', $txtpassword, PDO::PARAM_STR);
			$result->bindParam(':txtemail', $txtemail, PDO::PARAM_STR);
			$result->execute();
			$count = $result->rowCount();
			if($count>0){
				echo '<div class="alert alert-success">
					  <button type="button" class="close" data-dismiss="alert">×</button>
					  <strong>Cadastrado com sucesso!</strong> Você será redirecionado.
					  </div>';
				header("Refresh: 3, page.php?p=sign_in");
			}else{
				echo '<div class="alert alert-danger">
					  <button type="button" class="close" data-dismiss="alert">×</button>
					  <strong>Erro no cadastro!</strong> Algo deu errado.
					  </div>';
			}
			
		}catch(PDOException $e){
			echo '<div class="alert alert-danger">
				  <button type="button" class="close" data-dismiss="alert">×</button>
				  <strong>Erro no cadastro!</strong> Preencha todos os campos.
				  </div>';
		}
	}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sistema de INSERT, DELETE, SELECT eu tenho aqui já, só não faço ideia de por onde começar um sistema de avaliação =/

Então você já tem 90% do sistema.

Um sistema de avaliação é um sistema de cadastro. Cadastro de avaliações.

Cada avaliação tem um texto, um autor e uma nota (além de outros dados que sejam úteis). Essa nota é que vai gerar a média. É só somar todas e dividir pelo número de registros.

 

Divida o problema em problemas menores. Primeiro só cadastre as opiniões com as notas. Depois pense em como exibir todas elas, com a média geral. Uma coisa de cada vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você já tem 90% do sistema.

Um sistema de avaliação é um sistema de cadastro. Cadastro de avaliações.

Cada avaliação tem um texto, um autor e uma nota (além de outros dados que sejam úteis). Essa nota é que vai gerar a média. É só somar todas e dividir pelo número de registros.

 

Divida o problema em problemas menores. Primeiro só cadastre as opiniões com as notas. Depois pense em como exibir todas elas, com a média geral. Uma coisa de cada vez.

 

pesquisei na net por rating stars system e parece mais complicado do que isso D=

Mais vamos por partes que nem o jack estripador.. vou postar aqui o que eu ir fazendo.. vou precisar de ajuda em alguns pontos como exibir o resultado total de todas avaliação

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora você precisa calcular a média.

Pra isso, basta somar tudo e dividir pelo total. Pode usar as funções SUM() e COUNT(), do MySQL.

 

Também há a função AVG(), que faz exatamente a mesma coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora você precisa calcular a média.

Pra isso, basta somar tudo e dividir pelo total. Pode usar as funções SUM() e COUNT(), do MySQL.

 

Também há a função AVG(), que faz exatamente a mesma coisa

Pode fazer um exemplo pra mim ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara me surgiu um problema aqui, fui exibir os comentarios neh, ai fiz select tudo certinho só q não sei como faço pra exibir o nome do id = 20 por exemplo por que na tabela que fiz o select dos comentario é essa http://i.imgur.com/tC8Mt0p.png e ai não tem o nome do usuario q comentou só a ID dele, como faço pra exibir o nome do usuario pela ID ?

 

SELECT * FROM users WHERE ..... ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiquei confuso d+ com aquelas tabela de times

 

'Selecione o campo time da tabela times e usuario da tabela usuarios aonde a tabela times esta ligada a

tabela usuario_time e o campo id_time da tabela times seja = ao campo id_time da tabela usuario_time

e a tabela usuarios onde o campo id_usuario da tabela usuario_time seja igual = ao campo id_usuario da tabela usuarios'

 

buguei

 

@Edit

 

Consegui

SELECT a.id_user, a.comment, b.id, b.name 
FROM tb_comment a, users b 
WHERE a.id_user=b.id ORDER BY id DESC LIMIT $start_pg, $amount_pg

@Edit

 

Olha o que estou fazendo para inserir os value das stars no mysql

<div id="mensagem"></div>

<div id="col_star">
<table cellspacing=2 cellpadding="2">
<tr>

<td width="48" onmouseover="vota('1')" onmouseout="retira('1')" onclick="avalia('1');" style="cursor:pointer;"><img id="1" src="layout/images/star_48x48.png" border="0" id="star1"></td>

<td width="48" onmouseover="vota('2')" onmouseout="retira('2')" onclick="avalia('2');" style="cursor:pointer;"><img id="2" src="layout/images/star_48x48.png" border="0" id="star2"></a></td>

<td width="48" onmouseover="vota('3')" onmouseout="retira('3')" onclick="avalia('3');" style="cursor:pointer;"><img id="3" src="layout/images/star_48x48.png" border="0" id="star3"></a></td>

<td width="48" onmouseover="vota('4')" onmouseout="retira('4')" onclick="avalia('4');" style="cursor:pointer;"><img id="4" src="layout/images/star_48x48.png" border="0" id="star4"></a></td>

<td width="48" onmouseover="vota('5')" onmouseout="retira('5')" onclick="avalia('5');" style="cursor:pointer;"><img id="5" src="layout/images/star_48x48.png" border="0" id="star5"></a></td>

<td id="nota" width="65"></td>

</tr>
</table>
</div>

só que quando eu clico em uma das estrelas não aparece a mensagem

<script>	
	function cache() 
	{
		imagens = new Image();
		imagens.src='star_48x48.png';
		imagens.src='star1_48x48.png';
	}
	
	function vota(id) 
	{
		if(id==1) 
		{
		document.getElementById('nota').innerHTML="<font class='ajax'><input type='hidden' name='star1' id='star1' value='1'></font>";
		}	
		if(id==2) 
		{
		document.getElementById('nota').innerHTML="<font class='ajax'><input type='hidden' name='star2' id='star2' value='2'></font>";
				}
		if(id==3) 
				{
		document.getElementById('nota').innerHTML="<font class='ajax'><input type='hidden' name='star3' id='star3' value='3'></font>";
				}
		if(id==4) 
				{
		document.getElementById('nota').innerHTML="<font class='ajax'><input type='hidden' name='star4' id='star4' value='4'></font>";
				}
		if(id==5) 
				{
		document.getElementById('nota').innerHTML="<font class='ajax'><input type='hidden' name='star5' id='star5' value='5'></font>";
				}
		for(i = 0; i < id; i++) 
				{
		document.getElementById(i+1).src="layout/images/star1_48x48.png";
		}
	}

	function retira(id) 
	{
		for(i = 5; i > id; i--) 
		{
		document.getElementById(i).src="layout/images/star_48x48.png";
		}
	}
	
	function avalia(id)
	{
		//alert(user);
		
		var user = document.getElementById('txtid_usuario').value;
		
		if (user != "")
		{
		
		if(id==1) 
		{
			document.getElementById('voto').value = id;
			document.getElementById('col_star').style.display = 'none';
			document.getElementById('mensagem').innerHTML="<div class='alert alert-success' style='height:48px;text-align:center;'><strong>Obrigado!</strong> Seu voto foi computado com sucesso :)</div>";
		}

		if(id==2) 
		{
			document.getElementById('voto').value = id;
			//alert('tetse');
			document.getElementById('col_star').style.display = 'none';
			document.getElementById('mensagem').innerHTML="<div class='alert alert-success' style='height:48px;text-align:center;'><strong>Obrigado!</strong> Seu voto foi computado com sucesso :)</div>";
		}

		if(id==3) 
		{
			document.getElementById('voto').value = id;
			document.getElementById('col_star').style.display = 'none';
			document.getElementById('mensagem').innerHTML="<div class='alert alert-success' style='height:48px;text-align:center;'><strong>Obrigado!</strong> Seu voto foi computado com sucesso :)</div>";
		}

		if(id==4) 
		{
			document.getElementById('voto').value = id;
			document.getElementById('col_star').style.display = 'none';
			document.getElementById('mensagem').innerHTML="<div class='alert alert-success' style='height:48px;text-align:center;'><strong>Obrigado!</strong> Seu voto foi computado com sucesso :)</div>";
		}

		if(id==5) 
		{
			document.getElementById('voto').value = id;
			document.getElementById('col_star').style.display = 'none';
			document.getElementById('mensagem').innerHTML="<div class='alert alert-success' style='height:48px;text-align:center;'><strong>Obrigado!</strong> Seu voto foi computado com sucesso :)</div>";
		}		
		}
		else
		{
			document.getElementById('col_star').style.display = 'none';
			document.getElementById('mensagem').innerHTML="<div class='alert alert-danger' style='height:48px;text-align:center;'><strong>Erro ao avaliar!</strong> É necessário realizar o login para enviar um comentário.</div>";
		}
	}
</script>

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.