Foros del Web » Programando para Internet » PHP »

Sistema de puntuaciones

Estas en el tema de Sistema de puntuaciones en el foro de PHP en Foros del Web. Hola a todos, me explico :3 Quiero crear un sistema web sencillito y me gustaria ir pidiendo ayuda desde el principio para conseguirlo al mismo ...
  #1 (permalink)  
Antiguo 19/01/2012, 19:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Sistema de puntuaciones

Hola a todos, me explico :3

Quiero crear un sistema web sencillito y me gustaria ir pidiendo ayuda desde el principio para conseguirlo al mismo tiempo que aprendo php y mysql.

Proyecto: Portal comunmente conocido como "leaderboard system", o lo que es lo mismo sistema puntuaciones online.

La base seria un juego musical. El sistema funcionaria con registro de usuarios, estos una vez registrados, en su panel de control tendran opcion de registrar puntuacion.
Cosa que para ello primero tendran que elegir la cancion para la cual desean introducir la puntuacion.

Como funcionalidad, el sitio tendra accesos a "inicio, registrarse, Perfil, subir puntuacion, Ranking"

Cada funcion esta clara excepto ranking, que mediante consultas sql mostraria diferente informacion. *como los usuarios con mas puntuacion total, elegir una cancion y que salgan los usuarios con su respectiva puntuacion ordenados por puntuacion de mayor a menor, etc etc)

Vale pues, me puse a crear las base de datos en phpmyadmin. Y cree las tablas "usuarios, canciones y puntuaciones".
La tabla de usuarios la cree automaticamente en base a un script de registro de usuarios que descargue. (Que encripta las contraseñas y tal para tener un minimo de seguridad).

Vale pues, en la tabla de canciones, tengo las columnas "id_cancion y cancion". *ya tengo introducidas las canciones que son unas 69 dejando la columna id_cancion como autoincrement*

Y en la tabla de puntuaciones, las columnas "id_usario, nombre_usuario, id_cancion, nombre_cancion, puntuacion".

Y empezo mi problema, la tabla de usuarios se rellena sin problemas en el registro. La tabla de canciones es solo informativa. y la tabla de puntuaciones (que supongo que estara mal hecha) deberia rellenarse cuando un usuario logeado en el sistema pulsa en "subir puntuacion".

*no tengo nada hecho salvo las bases de datos y sin relaciones*
Por partes habria que crear la seccion de subir puntuacion en php, la respectiva consulta sql para que me muestre un selector de las canciones de la db, y al seleccionarla e introducir en un textbox la puntuacion actualice la tabla de puntuaciones con todos los datos.

Pues primero, no tengo ni idea de como hacer relaciones de tabla con phpmyadmin. *solo estudie hace mucho relaciones en access, donde era mucho mas facil* Y tendria que hacer primero supongo el codigo php con su respectiva consulta sql para mostrar las canciones de la db *pero no me acuerdo de sql xd, supongo que bastaria con un select all del campo de la tabla*
Pero ya ni idea de como recoger por variables php la informacion de la puntuacion, del nombre de usuario y de lo necesario ademas de la sentencia de insertar la informacion en la tabla de puntuaciones.

Pido ayuda desde cero, de lo que seria empezar con finalizar las relaciones de las tablas de la db, y como plantear el codigo php para lo que quiero hacer desde el principio.

A ver si hay almas caricativas que quieran ayudarme a iniciarme en php con este proyecto xd
  #2 (permalink)  
Antiguo 19/01/2012, 23:11
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 13 años, 9 meses
Puntos: 32
Respuesta: Sistema de puntuaciones

<html>
<head>
<script type="text/javascript">
function getVote(int)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("poll").innerHTML=xmlhttp. responseText;
}
}
xmlhttp.open("GET","poll_vote.php?vote="+int,true) ;
xmlhttp.send();
}
</script>
</head>
<body>

<div id="poll">
<h3>Do you like PHP and AJAX so far?</h3>
<form>
Yes:
<input type="radio" name="vote" value="0" onclick="getVote(this.value)" />
<br />No:
<input type="radio" name="vote" value="1" onclick="getVote(this.value)" />
</form>
</div>

</body>
</html>






<?php
$vote = $_REQUEST['vote'];

//get content of textfile
$filename = "poll_result.txt";
$content = file($filename);

//put content in array
$array = explode("||", $content[0]);
$yes = $array[0];
$no = $array[1];

if ($vote == 0)
{
$yes = $yes + 1;
}
if ($vote == 1)
{
$no = $no + 1;
}

//insert votes to txt file
$insertvote = $yes."||".$no;
$fp = fopen($filename,"w");
fputs($fp,$insertvote);
fclose($fp);
?>

<h2>Result:</h2>
<table>
<tr>
<td>Yes:</td>
<td>
<img src="poll.gif"
width='<?php echo(100*round($yes/($no+$yes),2)); ?>'
height='20'>
<?php echo(100*round($yes/($no+$yes),2)); ?>%
</td>
</tr>
<tr>
<td>No:</td>
<td>
<img src="poll.gif"
width='<?php echo(100*round($no/($no+$yes),2)); ?>'
height='20'>
<?php echo(100*round($no/($no+$yes),2)); ?>%
</td>
</tr>
</table>




archivo poll_result.txt con permisos de escritura
el primer numero representa el si el segundo numero el no

0||0
  #3 (permalink)  
Antiguo 22/01/2012, 10:05
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Sistema de puntuaciones

Gracias, pero eso no es lo que busco. Yo hablo de un sistema de puntuaciones en el cual cada usuario "registrado" las introduce y estas se registran en una base de datos.

Nada que ver con un sistema libre de votar "si o no"
  #4 (permalink)  
Antiguo 22/01/2012, 13:06
Avatar de Yacobh  
Fecha de Ingreso: diciembre-2011
Ubicación: con los pies en la tierra
Mensajes: 32
Antigüedad: 12 años, 4 meses
Puntos: 7
Respuesta: Sistema de puntuaciones

Hola! que tal? no soy un experto, pero puedo ayudar de vez en cuando, veo que tu proyecto esta en una etapa bastante tierna, y creo que te va a tocar ir aprendiendo paso a paso, problema tras problema, así es muy bueno porque aprendes bastante.

algunas preguntas:
ya tienes la parte donde se registran los usuarios?
ya tienes la caja/formulario donde el usuario sube la puntuación?
¿como sube la puntuación un usuario? ¿tiene alguna condición?

Y mi recomendacion es esta.. divide y venceras, si puedes dividir tu gran problema en pequeños subproblemas sera mas facil realizarlo y ayudarte.


Saludos

Etiquetas: mysql, registro, sistema, sql, tabla, variables, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:43.