Cual es el codigo para valorar una noticia

Iniciado por neopuerta360, 29 Septiembre 2010, 02:02 AM

0 Miembros y 2 Visitantes están viendo este tema.

neopuerta360

Hola a todos cual es el codigo para que los visitantes de mi web valoren una notici quiero lago mas o menos como el de escalofrio.com.

Gracias!

Diabliyo

#1
Cita de: neopuerta360 en 29 Septiembre 2010, 02:02 AM
Hola a todos cual es el codigo para que los visitantes de mi web valoren una notici quiero lago mas o menos como el de escalofrio.com.

Gracias!


Si por valorizar te refieres a votar, entonces la cosa es muy simple... Asumiendo que cada NOTICIA la guardas en una tabla mas o menos asi:
Código (SQL) [Seleccionar]
create table NOTICIAS(
   ID VARCHAR(10) not NULL UNIQUE,
   TITULO VARCHAR(100) not NULL,
   CONTENIDO TEXT not NULL,
   );


Lo mas recomendable, limpio y profesional, es crearte una tabla especial para almacenar los votos, siendo esto asi:

Creamos tabla VOTOS.
Código (SQL) [Seleccionar]
create table VOTOS(
   ID VARCHAR(10) not NULL UNIQUE,
   NOTICIA_ID VARCHAR(10) not NULL,
   IP_USUARIO VARCHAR(20) not NULL,
   FECHA VARCHAR(100) not NULL,
   VOTO VARCHAR(3) not NULL );


La idea es que, cuando creamos una noticia creamos un ID nuevo para la tabla de NOTICIAS donde este difiera de TODOS los demas, siendo este valor como UNICO. Basandonos en esto, cuando alguien insete o intente VOTAR una noticia, creamos un nuevo valor en la tabla VOTO, en donde insertamos el ID de la NOTICIA en NOTICIA_ID, aparte tomamos el IP, FECHA y VOTO (valor). De esta forma sabremos quienes votaron la noticia, que valor le dieron y sera muy simple sacar el conteo.

Código (php) [Seleccionar]
<?php
$link
conectar();
$consmysql_query"select * from VOTOS where NOTICIA_ID='"htmlentitites($_GET["id"], ENT_QUOTES). "';"$link );

$conteomysql_num_rows($cons);

echo 
'Esta noticia posee: '$conteo;

if( 
$conteo==) echo ' voto.';
else echo 
' votos.';
?>


La IP nos sirve de mucho para que antes de guardar el voto, verificamos TODAS LAS IPS del dia ACTUAL ( date("d/m/y", time()) ), y si esta es distinta de las obtenidas, entonces se procesa con exito el voto, de lo contrario se asume que esa ip ya voto.

Saludos !

Shell Root

Prefiero está,
Código (php) [Seleccionar]
function mostrarVotos($sID){
 if(is_numeric($sID))
   $sSQL = "SELECT * FROM tblNoticia WHERE(sID = '$sID')";
   $sQuery = mysql_query($sSQL, $sHandler);
   if($sQuery){
     $sVotos = mysql_num_rows($sQuery);
     if($sVotos > 1){
       return "Esta noticia posee: $sVotos votos.";
     }else if($sVotos == 1){
       return "Esta noticia posee: $sVotos voto.";
     }else{
       return "Error.";
     }
   }else{
     return mysql_error();
   }
 }else{
   return "El valor: $sID, no es un valor numérico.";
 }
}
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Diabliyo

La opcion que menciona Shell root tambien es buena, pero digamos que es super-simple, vaya, por si quieres algo rapido.

El inconveniente de manejar los VOTOS en la misma tabla de la NOTICIA, es que no tienes la posibilidad de contabilizar los VOTOS por IP y pues podrian bombardearte los Votos, por otro lado, usar una TABLA especial para los Votos te brinda mejor control, saber Quienes votan, si usas Geolocalizacion, podrias hasta armar un Log Estadistico de: Que regiones te Votan mas ! y cosas asi... Vaya, detalles visualies estadisticos que si tienes un sitio grande y quieres venderlo para publicidad, necesitarias algo asi :D.

Te reitero, ambas opciones son buenas y funcionan, todo depende la magnitud.

Saludos !

neopuerta360


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.

neopuerta360


Shell Root

Entonces, porque no lo dijisteis! Perdimos nuestro tiempo.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

~ Yoya ~

Tienes que saber que usar una  Base De Datos es una ventaja no una desventaja...
Me imagino como harás un paginador xD
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

#!drvy

Yo tambien en mis principios me negaba a usar bases de datos... utilizaba archivos txt y extensiones raras (que no existian) para almacenar toda la info... un dia vino un tio y me dijo "negro, como no uses bases de datos te borro del msn..." ahi empeze a utilizar BD  :xD :xD

ahora enserio.. miarroba (creo que es el que usas) permite usar bases de datos.  Busca en google como configurarla. Codigos que ahora te cuestan 50 lineas con BD's los harias en 10... piensatelo.




Saludos