como agregar sistema de puntos por php y mysql?

Iniciado por wirelesswifi, 7 Octubre 2010, 00:39 AM

0 Miembros y 1 Visitante están viendo este tema.

wirelesswifi

Buenas a todos.

Como haria para insertar un sistema de votos en una web.

Un ejemplo, por cada noticia de una web llevara puntos sumando o restando.

Espero me hayan entendido.

Busque en google pero consegui por voto de estrellas pero no me gustan.

Espero me ayuden.

Edito: Algo similar asi como en la imagen:



Saludos...

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Shell Root

#2
Ando un poco enfermo, pero igual puedo programar algo. Mira este ejemplo,

Base de datos,
Código (sql) [Seleccionar]
DROP DATABASE dbPoC;
CREATE DATABASE dbPoC;
USE dbPoC;
CREATE TABLE tblNoticia(
   sIDNoticia INT,
   sNoticia TEXT,
   sFecha DATE,
   PRIMARY KEY (sIDNoticia)
);

CREATE TABLE tblVoto(
   sIDVoto INT,
   sfIDNoticia    INT,
   sBuenos INT,
   sMalos INT,
   PRIMARY KEY (sIDVoto), FOREIGN KEY(sIDVoto) REFERENCES tblNoticia(sIDNoticia)
);

INSERT INTO tblNoticia(sIDNoticia, sNoticia, sFecha) VALUES (1, 'PoC_Noticia 1', '2010-10-01');
INSERT INTO tblNoticia(sIDNoticia, sNoticia, sFecha) VALUES (2, 'PoC_Noticia 2', '2010-10-02');
INSERT INTO tblNoticia(sIDNoticia, sNoticia, sFecha) VALUES (3, 'PoC_Noticia 3', '2010-10-03');

INSERT INTO tblVoto(sIDVoto, sfIDNoticia, sBuenos, sMalos) VALUES (1, 1, 1, 5);
INSERT INTO tblVoto(sIDVoto, sfIDNoticia, sBuenos, sMalos) VALUES (2, 2, 3, 3);
INSERT INTO tblVoto(sIDVoto, sfIDNoticia, sBuenos, sMalos) VALUES (3, 3, 4, 2);


Código,
Código (php) [Seleccionar]
<?php

    
# Valoración de una noticia personalizada

    
$sIMGBien 'http://www.campings.net/imagenes/bien.jpg';
    
$sIMGMal 'http://www.campings.net/imagenes/mal.jpg';

    
$sHandler mysql_connect('127.0.0.1''root''root') OR DIE ('Error: '.mysql_error());
    
mysql_select_db("dbPoC"$sHandler) OR DIE ('Error: '.mysql_error());

    
$sSQL 'SELECT sIDNoticia, sNoticia, sFecha, sBuenos, sMalos, sBuenos + sMalos As sTotal FROM tblNoticia INNER JOIN tblVoto ON tblVoto.sfIDNoticia = tblNoticia.sIDNoticia;';
    
$sQuery mysql_query($sSQL$sHandler) or die(mysql_error());
    
$sRows mysql_num_rows($sQuery);
?>


   <table border = 1>
       <tr>
           <td><b>CODIGO</b></td>
           <td><b>NOTICIA</b></td>
           <td><b>FECHA NOTICIA</b></td>
           <td><b>VALORACION</b></td>
       </tr>
       <?php
            
if ($sRows 0){
                while (
$sField mysql_fetch_assoc($sQuery)) {
                    echo 
"<tr>";
                    echo 
"<td>".$sField['sIDNoticia']."</td>";
                    echo 
"<td>".$sField['sNoticia']."</td>";
                    echo 
"<td>".$sField['sFecha']."</td>";
                    echo 
"<td><table><tr><td><img src='$sIMGBien'/></td><td><img src='$sIMGMal'/></td></tr><tr><td align='center'>".$sField['sBuenos']."</td><td align='center'>".$sField['sMalos']."</td><td><b>Total: </b>".$sField['sTotal']." voto(s)</td></tr></table></td>";
                    echo 
"</tr>";
                }
            }
        
?>

   </table>


Resultado,

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

wirelesswifi

#3
Esta muy bueno lo que has publicado, pero como seria por IP.

Ejemplo, algo asi lo tengo por noticias asi:

noticia.php?not=1
noticia.php?not=2
noticia.php?not=3

etc...

Pero quiero que en cada noticia haya un texto que dice Votar con un a href cuando pulsen  Votar el link, mande un voto a cada noticia. Vaye sumando.

Pero que sea un voto por IP

Lo que has puesto esta bien, espero me hayen entendido

Saludos...

bizco

ya te a puesto demasiado, solo tienes que añadir la ip y verificar antes de votar si esa ip ya voto.

wirelesswifi

#5
Pero como se haria, por ejemplo en la base de datos tengo una tabla llamada votos

En ella hay 5 columnas

id noticia fecha ip voto

En php como quedaria el codigo

Espero me ayuden

Saludos...



wirelesswifi

Gracias a todos por sus respuestas.

Ya tengo la base de datos con la tabla votos.

Ahora lo unico que falta es cuando un visitante entre a las noticias ya sea por id

Cuando pulsen Votar mande un voto a la columna voto con el id de la noticia.

Pero lo que quiero es con a href cuando pulsen a href en una noticia mande un voto para esa noticia por su respectivo id

Espero me ayuden solo en eso.

Saludos...

xassiz~

#9
En el "a href" mete un enlace con el que puedas enviarle el dato a php por método GET, por ejemplo:


?id=2&accion=votar


Y luego los recojes:
Código (php) [Seleccionar]

<?php

if(is_numeric($_GET['id']) && ($_GET['accion']=="votar")){
    ...
}

?>