Hacer un sistema de votos para articulos no es tan dificil, y creo que mucho mas sencillo si usamos CodeIgniter:

Cosas que haremos: tener un articulo y en este articulo tener un formulario con radio button para valorar el articulo.

Veamos:

Nota: no vamos a profundizar sobre que cosas es CodeIgniter, este tutorial es para personas que por lo menos lo ha utilizado una vez y todo le ha salido bien.

Controlador de articulos:

class Articulos extends Controller{ 
   function Articulos(){  // constructor
      parent::Controller();
   }
   function index(){
     // index de nuestra seccion articulos
     // aqui no me toca hacer nada, este tutorial no es para mostrar un listado de articulo en nuestro index  
   }
   function articulo($id=0){
      $data['titulo'] = 'Valoracion via votos';
      $data['query'] = $this->model_articulos->get($id);
      $data['votos'] = $this->model_votos->get($id);
      $this->load->vars($data);
      $this->load->view('articulo_view.php');
   }
   function votar(){
      $articulo = $this->input->post('articulo_id');
      $voto = $this->input->post('voto');
      $votar = $this->model_votos->votar($articulo,$voto);  
     if($votar){
        redirect('/articulos/articulo/'.$articulo);
     }     
   }
}

Eso es todo para nuestro controlador

Modelo de Votos:

class Model_votos extends Model{ 
   const TABLA = "votos";
   function Model_votos(){  // constructor
      parent::Model();
   }
   function votar($articulo,$voto){
      $query = $this->db->get_where(self::TABLA,array('articulo_id'=>$articulo));
     if($query->num_rows()>0){
		$this->db->where('articulo_id',$articulo);
		$this->db->set('votos','votos + 1', FALSE);
		$this->db->set('puntos','puntos + '.$voto, FALSE);
		$this->db->update(self::TABLA, $this);
       }else{
		$this->articulo_id = $articulo;
		$this->votos = 1;
		$this->puntos = $voto;
		$this->db->insert(self::TABLA, $this);
	}
     }
   function get($id){
     $query = $this->db->get_where(self::TABLA,array('articulo_id'=>$id));
     return $query->row();
   }
}

Eso es todo para nuestro modelo de votos

Modelo de Articulos:

class Model_articulos extends Model{ 
   const TABLA = "articulos";
   function Model_articulos(){  // constructor
      parent::Model();
   }
   function get($id){
      $query = $this->db->get_where(self::TABLA,array('id'=>$id));
      return $query->row();
  }
}

Eso es todo para nuestro modelo de articulos

Vista para mostrar la data:


 
   
     < ?php echo $titulo;?>
   
  
  

< ?php echo $query->titulo;?>

< ?php echo $query->contenido;?> Valoración: (< ?php echo @round($votos->puntos/$votos->votos,2);?>), Votos: (< ?php echo $votos->votos;?>)
< ?php echo form_hidden('articulo_id', $query->id); for($i=1;$i< =10;$i++){ ?> < ?php echo $i;?> < ?php } ?>

Eso es todo para nuestra vista (articulo_view.php)

Y nuestra tabla mysql esta compuesta por los siguientes campos

CREATE TABLE `votos` (
    `articulo_id` int(11) NOT NULL default '0',
    `votos` int(11) NOT NULL default '0',
    `puntos` int(11) NOT NULL default '0'
) TYPE=MyISAM;

Espero les ayude, todo esto debe funcionar, recuerde que el formulario se envia inmediatamente se hace click en el radio button via onClick

VN:F [1.9.3_1094]
Rating: 6.0/10 (3 votes cast)
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)
Votos con CodeIgniter, 6.0 out of 10 based on 3 ratings