Ver Mensaje Individual
  #37 (permalink)  
Antiguo 04/04/2005, 12:15
Avatar de El_Metallick
El_Metallick
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 5 meses
Puntos: 16
AHI SI FUNCIONA!!!!!!!!!!!!!!!!!!!!!.... gracias a todos, en especial a dobled, quien ha desarrollado este script, bueno les doy los codigos para que funcione bien

ver.asp, (esta en vez de valoracion.asp)
Código:
<html>
<head>
<title>Productos</title>
</head>
<SCRIPT>
<!--
function openWin(url, width, height) 
{
 var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height + ',resizable=no,scrollbars=no,menubar=no,status=no' );
}
//-->
</SCRIPT>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("pcmstore.mdb")
Conn.Open strConn

SQL="SELECT * FROM pcm_productos ORDER BY id_prod"
set RS = Conn.Execute(SQL)

Do While Not RS.EOF
%>
<table border="0" width="100%">
  <tr>
    <td width="15%">Producto</td>
    <td width="85%"><a href="clicks.asp?url=<% = RS("URL") %>"><% = RS("producto") %></a></td>
  </tr>
  <tr>
    <td width="15%">Descripción</td>
    <td width="85%"><% = RS("descripcion") %></td>
  </tr>
  <tr>
    <td width="15%">Valoración</td>
    <td width="85%">Clicks: <% = RS("clicks") %>&nbsp;<%
      		
rate = Cint(Rs("total_votos"))/Cint(Rs("votos"))
rate = Round(rate)
		
Response.Write	("Este producto ha recibido "&Rs("votos")&" votos ")
Response.Write	("<img src="""&rate&"_star_rating.gif"" width=""66"" height=""14"" alt="""&rate&" Estrellas"" border=""0"" align=""absmiddle"">")
Response.Write	(" - ")
Response.Write	("<a href=""javascript:openWin('valoracion_producto.asp?prodID=" & rs("id_prod") & "','rate_site')"" style=""font-size:""11px""; font-style: italic;"">votar</>")

%></td>
  </tr>
</table><br><br>
<%
RS.MoveNext
Loop

%>
</body>
</html>
add_valoracion.asp
Código:
<%
       stroconn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("pcmstore.mdb")
       set oConn = server.createobject("adodb.connection")
       oConn.open stroconn

            'Recupero el valor del voto y el valor del ID del producto
		prodID	=	Request.Querystring("prodID")
		votos	=	Request.Querystring("Votos")


		'Traigo los votos actuales que tiene el producto para sumarle los nuevos
		SQL="SELECT * FROM pcm_productos WHERE id_prod = "&prodID&" "
		Set Rs = Server.CreateObject("ADODB.Recordset")
		Rs.Open SQL, oConn,3,1

		vact		=	Cint(Rs("total_votos"))
		total		=	vact + Votos
		
		'Sumamos uno a las votaciones
		rating		=	Cint(Rs("votos"))+1
		
		'Ahora que tengo el total que es lo que recibi de la base mas los votos nuevos actualizo la valoracion del producto segun su ID
		SQL = "UPDATE pcm_productos Set total_votos = "&total&", votos = "&rating&" WHERE id_prod = "&prodID&" "
		Set RS = oConn.Execute(SQL) 
		
		'Creamos una cookie con el id del producto para que no voten mas de una vez(puro grupo) le damos una semana
		Response.Cookies("valoracion")("prodID")= prodID
		Response.Cookies("valoracion").Expires = Now() + 7
%>
<br>
<br>
<br>
<br>
<table width="215" height="22" border="0" align="center" cellpadding="1" cellspacing="0" bgcolor="#000000">
  <tr>
    <td><table width="100%" height="140" border="0" cellpadding="4" cellspacing="0" bgcolor="#FFFFFF">
        <tr>
          <td class="text"><div align="center"><img src="http://www.pcmod.cl/images/index01.jpg" width="200" height="60"><br>
            Gracias por tu Voto<br>
            <a href="javascript:onClick=window.close()"><br>
            Cerrar Ventana </a><br>
          </div></td>
        </tr>
    </table></td>
  </tr>
</table>
valoracion_producto.asp
Código:
<%
		prodID		=	Request.Querystring("prodID")
		valoracion 	= 	Request.Cookies("valoracion")("prodID")

%>
<script language="JavaScript">
function Rating(star) {

	if (star != "") self.location.href = "add_valoracion.asp?prodID=<%=prodID%>&Votos=" + star;
	return true;
}
// -->
</script>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
<div align="center">
  <%
		If valoracion = prodID Then
%>
  <br>
  <br>
  <br>
  <br>
  <table width="215" height="22" border="0" align="center" cellpadding="1" cellspacing="0" bgcolor="#000000">
    <tr>
      <td><table width="100%" height="140" border="0" cellpadding="4" cellspacing="0" bgcolor="#FFFFFF">
          <tr>
            <td class="text"><div align="center">Disculpa, pero t&uacute; ya has votado por este producto. Intenta la proxima semana <br>
                    <a href="javascript:onClick=window.close()"><br>
                    <br>
                Cerrar Ventana </a><br>
            </div></td>
          </tr>
      </table></td>
    </tr>
    </table>
  <%else%>
  <br>
  <span class="text2">Valoraci&oacute;n de Productos<br>
  </span>Haz click en las estrellas que crees que<br>
  representan el valor de votos para el<br>
  producto elegido.<br>
  <br>
  <br>
  <table width="215" height="22" border="0" align="center" cellpadding="1" cellspacing="0" bgcolor="#000000">
    <tr>
      <td><table width="100%" border="0" cellspacing="0" cellpadding="4" bgcolor="#FFFFFF">
          <tr>
            <td width="50" class="text"><a href="javascript:Rating('0')"><img src="0_star_rating.gif" width="66" height="14" alt="0 Stars" border="0"></a></td>
            <td width="154" class="text">No lo comprar&iacute;a</td>
          </tr>
          <tr>
            <td width="50" class="text"><a href="javascript:Rating('1')"><img src="1_star_rating.gif" width="66" height="14" alt="1 Star" border="0"></a></td>
            <td width="154" class="text">Solo lo ver&iacute;a </td>
          </tr>
          <tr>
            <td width="50" class="text"><a href="javascript:Rating('2')"><img src="2_star_rating.gif" width="66" height="14" alt="2 Stars" border="0"></a></td>
            <td width="154" class="text">Algo tiene de bueno </td>
          </tr>
          <tr>
            <td width="50" class="text"><a href="javascript:Rating('3')"><img src="3_star_rating.gif" alt="3 Stars" width="66" height="14" border="0" align="absmiddle"></a></td>
            <td width="154" class="text">OK</td>
          </tr>
          <tr>
            <td width="50" class="text"><a href="javascript:Rating('4')"><img src="4_star_rating.gif" width="66" height="14" alt="4 Stars" border="0"></a></td>
            <td width="154" class="text">Excelente</td>
          </tr>
          <tr>
            <td width="50" class="text"><a href="javascript:Rating('5')"><img src="5_star_rating.gif" width="66" height="14" alt="5 Stars" border="0"></a></td>
            <td width="154" class="text">No puede faltar en el PC </td>
          </tr>
      </table></td>
    </tr>
    </table>
  <%End if%>
</div>
clicks.asp
Código:
<%
Response.Buffer=TRUE

url = Request.Querystring("url") 

if url <>"" then

Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("pcmstore.mdb")&";"

strsql = "SELECT * FROM pcm_productos WHERE url = '" & url & "'" 

Set rs = Server.CreateObject("ADODB.RecordSet")
RS.open strsql, oConn, 3, 3

if rs.eof then
    rs.AddNew
    rs("clicks")= 1
    rs("url") = url
    rs.update
else
    rs("clicks")=rs("clicks")+1
    rs.update
end if 

rs.Close
set rs=nothing
oConn.Close
response.redirect URL
end if
%>
y la BD pcmstore.mdb, la tabla pcm_productos
id_prod (autonumerico)
producto (texto)
descripcion (texto)
URL (texto)
clicks (numerico)
votos (numerico)
total_votos (numerico)

Bueno y espero que todos disfrutemos de esto... muchas gracias...
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!